您的位置:首页 > 理论基础 > 计算机网络

Java再学习—TCP/UDP通信原理

2015-05-06 22:07 225 查看



TCP

一.服务器端

1.首先创建类java.net.serversocket的实例对象,注册在服务器端进行连接的端口号以及允许连接的最大客户数目
ServerSocket server=null;

server=new ServerSocket(5000);//建立服务器端套接字,端口号在0~633350

2.调用类java.net.serversocket的成员方法accept来等待并将听来自客户端的连接
Socket s=server.accept();//建立服务器端server与客户端s的连接
当建立起连接后accept方法返回连接通道在服务器端的套接字s
3.使用socket成员方法getinputstream和getoutputstream方法获得该套接字对应的输入流和输出流,通过获得输入输出流与客户端进行通信
<span style="white-space:pre">		</span>DataOutputStream dataout=new DataOutputStream(s.getOutputStream());
dataout.writeUTF("服务器端向客户端问好");
4.通讯完毕关闭输入输出流和套接字
<span style="white-space:pre">	</span>dataout.close();
<span style="white-space:pre">	</span>s.close();

二.客户端

1.同服务器端1,需要指定服务器端主机名以及进行连接的端口号
Socket s=new Socket("localhost",5000);
2.同服务器端2

DataInputStream dataln=new DataInputStream(s.getInputStream());
System.out.println("客户端收到:"+dataln.readUTF());
dataout.writeUTF("服务器端向客户端问好");
dataln.close();
s.close();


UDP

一.服务器端

1.建立数据报套接字
DatagramSocket dsocket=new DatagramSocket(8000);
2.件需要传送的数据封装成数据报包,

DatagramPacket inpacket=new DatagramPacket(inbuffer,inbuffer.length);
3.用receive成员方法将接受的数据存放在数据报包inpacket中
dsocket.receive(inpacket);
4.发送方式相似
dsocket.send(outpacket);

5.关闭数据包套接字
dSocket.close();

二.客户端

<span style="white-space:pre">			</span>DatagramSocket dSocket=new DatagramSocket();
if (args.length==0) {
addr= InetAddress.getByName("127.0.0.1");

}
else {
addr= InetAddress.getByName(args[0]);
}
String s=new String("请求连接");
outbuffer=s.getBytes();
DatagramPacket outPacket=new DatagramPacket(outbuffer,outbuffer.length,addr,8000);
dSocket.send(outPacket);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: