TCP与UDP下的socket编程小结

 

 

tcp协议下的socket编程比较靠谱,能发送大的文件。

服务器端:合法端口号在0到65535之间

 

ServerSocket sSocket=new ServerSocket(4567);

Socket socket = sSocket.accept();会产生阻塞。就是指收不到数据,就一直处于阻塞状态。

socket.getInputStream();

流的读操作----

 

客户端:

Socket socket = new Socket(所要发送到的IP,4567);

socket.getOuputStream();

流的写操作-----------

 

 

 

UDP下的的socket编程:速度快,只管发送,不管你是否能收到

服务器端:

DatagramSocket socket = new DatagramSocket(4567);

byte []data = new byte [1024];

//创建一个空的DatagramPacket对象

DatagramPacket packet =new DatagramPacket(data,data.length);

//使用receive方法接收客户端所发送的数据

socket.receive(packet);

完毕。查看数据请使用(String result=new String(packet.getData(),packet.getOffset(),packet.getLength());

 

packet.getData()-----返回的是数组。

packet.getOffset()-----偏移量

注:UDP更简单先,因为其接收的是数据包,没有流的概念。

 

客户端:

DatagramSocket socket = new DatagramSocket(4567);

InetAddress serverAddress= InetAddress.getByName(所要发送到的IP);

String str="hello hsiangyu";

//拆分成字节数组

byte []data =str.getBytes();

//创建DatagramPacket对象,并指定要将这个数据包发送到网络中的哪个地址,以及端口号

DatagramPacket packet =new DatagramPacket(data,data.length,serverAddress,4567);

socket.send(packet);

完毕。

注:发送的也是数据包,没有流的概念。

 

你可能感兴趣的:(socket,tcp,UDP)