首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

TCP与UDP上的socket编程小结

2012-10-08 
TCP与UDP下的socket编程小结??tcp协议下的socket编程:比较靠谱,能发送大的文件。服务器端:合法端口号在0到6

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);

完毕。

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

?

热点排行