Socket 编程 -- MarsChen Android 教程学习笔记


什么是Socket
通信链的句柄,用于描述IP 地址和接口。应用程序通常通过Socket 向网络发出请求或者应答网络请求。 
Socket 基本通信模型
Socket 编程 -- MarsChen Android 教程学习笔记 - Roller44 - 病友说
 
使用基于TCP 协议的Socket
Socket 编程 -- MarsChen Android 教程学习笔记 - Roller44 - 病友说
 
【服务器】
建立Socket ,建立一个新的线程,在线程中创建一个ServerSocket 对象,设置监听指定端口号。

ServerSocket serverSocket = new ServerSocket(xxxx);

调用ServerSocket 的accept() 方法,接受客户端发送的请求,建立一个InputStream 对象,调用socket 的getInputStream() 方法获得信息流。而在线程中,accpet 方法是阻塞的方法,直到有联系之后才启动线程。
  
  
ServerSocket socket = serverSocket.accept();
InputStream inputstream = socket.getInputStream();
同理,可以获得outputStream。
OutputStream outputSream = socket.getOutputStream();
最后调用close() 方法关闭socket。
【客户端】
建立Socket 对象,指定服务器端的IP 地址和端口号,调用getOutpuStream 方法产生outputStream 对象,从而读取数据。
  
  
Socket socket = new Socket("IP...", xxxx);
InputStream inputStream = new FileInputStream("地址");
OutputStream outputStream = socket.getOutputStream();

使用基于UDP 协议的Socket
【服务器】
创建一个DatagramSocket 类型对象,指定端口号。创建一个空的DatagramPacket 对象,调用receive 方法,并传入空的DatagramPacket 对象。其中,receive 方法和TCP 协议中的accept 方法一样,都是阻塞线程的方法。
  
  
DatagramSocket socket = new DatagramPacket(xxx);
byte data[] = new byte[1024];
DatagramPacket packet = new DatagramPacket(data, data.length);
socket.receive(packet);
【客户端】
创建一个DatagramSocket 对象,指定端口,再创建地址对象,调用getByName 方法指定地址。
  
  
DatagramSocket socket = new DatagramSocket();
InetAdress inetadress = InetAdress.getByName("地址");
String str ="xxx";
DatagramPacket packet = new DatagramPacket(data, data.length, inetadress, 端口号);
Socket.send(packet);

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值