当前位置:   article > 正文

网络编程套接字(Socket编程)_socket套接字编程

socket套接字编程

Socket:Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。

 

Socket API 分类:

1.UDP数据报套接字编程:

DatagramSocket 构造方法:

方法签名 方法说明
DatagramSocket() 创建一个UDP数据报套接字的Socket,绑定到本机任意一个随机端口
(一般用于客户端)
DatagramSocket(int
port)
创建一个UDP数据报套接字的Socket,绑定到本机指定的端口(一般用
于服务端)


DatagramSocket 方法:

方法签名 方法说明
void
receive(DatagramPacket p)
从此套接字接收数据报(如果没有接收到数据报,该方法会阻
塞等待)
void send(DatagramPacket
p)
从此套接字发送数据报包(不会阻塞等待,直接发送)
void close() 关闭此数据报套接字

DatagramPacket 构造方法:

方法签名 方法说明
DatagramPacket(byte[]
buf, int length)
构造一个DatagramPacket以用来接收数据报,接收的数据保存在
字节数组(第一个参数buf)中,接收指定长度(第二个参数
length)
DatagramPacket(byte[]
buf, int offset, int length,
SocketAddress address)
构造一个DatagramPacket以用来发送数据报,发送的数据为字节
数组(第一个参数buf)中,从0到指定长度(第二个参数
length)。address指定目的主机的IP和端口号

DatagramPacket 方法:

方法签名 方法说明
InetAddress
getAddress()
从接收的数据报中,获取发送端主机IP地址;或从发送的数据报中,获取
接收端主机IP地址
int getPort() 从接收的数据报中,获取发送端主机的端口号;或从发送的数据报中,获
取接收端主机端口号
byte[] getData() 获取数据报中的数据


构造UDP发送的数据报时,需要传入 SocketAddress ,该对象可以使用InetSocketAddress 来创建。

InetSocketAddress API
InetSocketAddress ( SocketAddress 的子类 )构造方法:

方法签名 方法说明
InetSocketAddress(InetAddress addr, int port) 创建一个Socket地址,包含IP地址和端口号

示例一:实现一个回显服务(EchoServer)=》一发一收(发什么就返回什么)

UDP服务端代码实现:

  1. package network;
  2. import java.io.IOException;
  3. import java.net.DatagramPacket;
  4. import java.net.DatagramSocket;
  5. import java.net.SocketException;
  6. // 站在服务器的角度:
  7. // 1. 源 IP: 服务器程序本机的 IP
  8. // 2. 源端口: 服务器绑定的端口 (此处手动指定了 9090)
  9. // 3. 目的 IP: 包含在收到的数据报中. (客户端的IP)
  10. // 4. 目的端口: 包含在收到的数据报中. (客户端的端口)
  11. // 5. 协议类型: UDP
  12. public class UdpEchoServer {
  13. // 进行网络编程, 第一步就需要先准备好 socket 实例~ 这是进行网络编程的大前提.
  14. private DatagramSocket socket = null;
  15. public UdpEchoServer(int port) throws SocketException {
  16. socket = new DatagramSocket(port);
  17. }
  18. // 启动服务器.
  19. public void start() throws IOException {
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/895744
推荐阅读
相关标签
  

闽ICP备14008679号