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

完毕。

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值