TCP和UDP编程
来源:互联网 发布:如何删除软件注册表 编辑:程序博客网 时间:2024/06/06 14:09
TCP编程:
服务器:
1.创建让客户连接的QQ服务器及端口。
ServerSocket ss = new ServerSocket(int port = 8896);
2.监听客户端连接请求,并创建一个新的Socket进行通信。
Socket s = ss.accept();
3. 创建接收和处理客户端消息的容器(流)。
InputStream in = s.getInputStream();//用来接收客户端传过来的数据的输入流
OutputStream out = s.getOutputStream();//可以返回数据给客户端的输出流
(4.创建不同的容器(流)接收数据,BufferInputStream,BufferOutputStream)
5. 获取客户端数据并(处理)返回。
inputStream.read();//接收客户端数据
outputStream.write();//写给客户端
6.关闭服务器,释放资源。
s.close();
ss.close();
客户端:
1.创建与QQ服务器通信的Socket(找到QQ服务器IP及端口)。
InetAddress addr = InetAddress.getByName("127.0.0.1");
Socket s = new Socket(addr, int port = 8896);
2. 创建接收和处理服务端消息的容器(流)。
InputStream in = s.getInputStream();//用来接收服务端传过来的数据的输入流
OutputStream out = s.getOutputStream();//可以返回数据给服务端的输出流
3. 传数据给服务端,接收服务端传输的数据
OutputStream.write("发送数据给QQ服务器".getBytes());
inputStream.read(b);
4.关闭各个流对象,结束通信。
socket.close(); //通过调用close()方法关闭与服务器端的连接
DatagramPacket类包含具体的要传输的信息,这些信息被封装在称为数据报(Datagram)的UDP包中。
DatagramSocket类用于收发UDP数据报。
UDP编程:
(1)建立一个DatagramSocket对象;
DatagramSocket socket = new DatagramSocket(port);
(2)创建用于接收数据的DatagramPacket对象;
DatagramPacket receivePacket = new DatagramPacket(buf, buf.length);
(3)利用DatagramSocket类方法receive()接收客户端数据。
socket.receive(receivePacket);
(4)处理客户端数据
data = data.toUpperCase();
(5)将处理好的数据封装到发送的信封里
DatagramPacket sendPacket = new DatagramPacketstr(data.getBytes(),
data.getBytes().length, clientAddr, clientport);
(6)利用DatagramSocket类方法send()发送数据。
socket.send(sendPacket);
- TCP和UDP编程
- 网络编程-TCP和UDP
- TCP、UDP 和Socket编程
- C# TCP和UDP编程
- 网络编程-UDP和TCP
- 关于UDP和TCP编程
- 基于socket的TCP和UDP编程
- 基于socket的TCP和UDP编程
- 基于socket的TCP和UDP编程
- 基于Socket的TCP和UDP编程
- Java网络编程:TCP和UDP
- 基于Socket的UDP和TCP编程
- 基于socket的UDP和TCP编程
- 网络编程(UDP和TCP)的步骤
- JAVA网络编程TCP和UDP
- 基于socket的TCP和UDP编程
- 19、网络编程(TCP和UDP)
- Linux网络编程(TCP和UDP)
- ASP.NET教程收集
- CF Round #348 Div. 2 A. Little Artem and Present B. Little Artem and Grasshopper C. Little Artem and
- 网络框架的封装(二)
- C++作业4
- 剑指offer之面试题22:栈的压入、弹出序列
- TCP和UDP编程
- [汇编学习笔记][第十章 CALL和RET指令]
- select函数总结
- Android中服务里面方法的调用,开启,绑定
- web day17 JDBC入门,DAO模式mySQL时间类型转换,批处理
- 笔记
- 了解 Spring Data JPA
- 跟我一起学习MySQL技术内幕(第五版):(第二章学习日记11)
- uva136 优先队列,或者常规做法,比较大小存入数组即可。