欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TCP与UDP下的socket编程小结

程序员文章站 2024-01-31 16:09:34
...

 

 

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