Java套接字 数据包的构造及操作

套接字:

Socket是客户端的套接字,构造方法是

Socket(String host,int port)

host是IP地址,port是端口号。与客户端相连接的是服务器,使用

ServerSocket(int port)

进行构造,其中的参数是和对应的Socket对象一致的端口号。同时服务器的对象可以使用accept()方法与服务器建立连接。该方法返回一个与客户端对象对应的Socket对象sc驻留在服务器端,sc可使用getinputstream()方法将自己读入的源指向客户的getoutputstream()的结果,同时用getoutputstream()将自己的输出源指向客户端的getinputstream()建立的目的地。

Socket类有不带参数的构造方法Socket()创建一个套接字对象s,此时需要创建一个InetSocketAddress对象,使用其构造方法

InetSocketAddress(InetAddress addr,int port)

构造一个对象I。使用s.connect(I)与服务器建立连接。此时可以创建一个线程,将一些复杂的操作放在线程中去。同时start()线程。因此,使用该类型的套接字可以创建多线程来实现多线程输入输出操作(在服务器端创建客户的线程)。(P404!)

数据包:

发送数据包:DatagramPacket类存在两个构造方法构造对象data_pack读取特定数据并发送到相应的地址:

DatagramPacket(byte data[],int length,InetAddtress address,int port)
DatagramPacket(byte data[],int offset,int length,InetAddtress address,int port)

DatagramSocket类有个不带参数的构造方法负责调用send(data_pack)发送数据包:

DatagramSocket mail_out = new DatagramSocket();
mail_out.send(data_pack);

接收数据包:DatagramSocket类的另一种构造方法:

DatagramSocket mail_in = DatagramSocket(int port)

创建一个和发送数据报端口号一致的接收对象。

同时DatagramPacket还有一种构造方法用于将所接受的数据读取到已创建的一个数组中去。

byte data[] = new byte[100];
int length = 90;
DatagramPacket pack = DatagramPacket(data,length);
mail_in.receive(pack);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值