java基础知识学习5

网络编程

计算机网络:

将地理位置不同的有独立功能的计算机及外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

网络编程:

在通信协议下实现网络互连的不同计算机上运行的程序间可以进行数据交换。

网络编程三要素:

IP地址(唯一标识设备),端口(唯一标识应用程序),协议。

InetAddress类:表示IP地址

static InetAddress getByName(String host)

String getHostName()

String getHostAddress()

InetAddress address = InetAddress.getByName("myhostname");
String hostname=address.getHostName();//得到主机名
String ip=address.getHostAddress();//得到IP地址

端口

两个字节表示的整数,范围0-65535。0-1023为知名的网络服务和应用,普通应用程序需要1024以上。

UDP通信程序

java提供DatagramSocket类作为基于UDP协议的Socket。

客户端:

DatagramSocket ds=new DatagramSocket();
//DatagramPacket(byte[] buf,int length,InetAddress address,int port)
byte[] bys="你好世界".getBytes();
int length=bys.length;
InetAddress address=InetAddress.getByName("192.183.3.3");
int port = 10086;
DatagramPacket dp= new DatagramPacket(bys,length,address,port);
ds.send(dp);
ds.close();

服务器端:

DatagramSocket ds=new DatagramSocket(10086);//绑定到本地主机上的指定端口
byte[] bys=new byte[1024];
DatagramPacket dp= new DatagramPacket(bys,bys.length);
ds.receive(dp);
byte[] datas = dp.getData();//解析数据包
int len=dp.getLength();
String dataString=new String(datas,0,len);
System.out.print(dataString);
ds.close();
java中常用报错补全的快捷键:Alt+Enter 和 Alt+Ins

TCP通信程序

java为客户端提供了Socket类,为服务器端提供了ServerSocket类。

客户端

//Socket s = new Socket(InetAddress.getByName("192.183.3.3"),10000);
Socket s = new Socket("192.183.3.3",10000);
//获取输出流,写数据
//OutputStream getOutputStream()返回套接字的输出流
OutputStream os = s.getOutputStream();
os.write("你好世界".getBytes());
s.close();

服务器端

//创建服务器端Socket对象(ServerSocket),绑定到侦听端口
ServerSocket ss= new ServerSocket(10000);
//侦听客户端的连接,并接收它,返回新的套接字Socket对象(客户端的)
Socket s = ss.accept();
//获取输入流,读数据
InputStream is = s.getInputStream();
byte[] bs=new byte[1024];
int len=is.read(bs);// 字节流的read方法,若传入数组,则读取内容到数组中,并且返回长度。
String data = new String(bs,0,len);
System.out.println(data);
//释放资源
s.close();
ss.close();       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值