TCP协议和UDP协议简单实例

TCP协议创建步骤:

import java.net.*;
import java.io.*;
/**
客户端负责发送数据:
步骤:
1、创建Socket对象,绑定IP和端口号
2、设置键盘录入
3、将内容写到服务器端
*/
class TCPClient{
/**
Socket(InetAddress address, int port) 
          创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
*/
public static  void main(String args[])throws Exception{
Socket s = new Socket("192.168.51.23",8888);
BufferedReader buffr = new BufferedReader(new InputStreamReader(System.in));
/**
PrintWriter(OutputStream out, boolean autoFlush) 
          通过现有的 OutputStream 创建新的 PrintWriter。
*/
PrintWriter out =  new PrintWriter(s.getOutputStream(),true);
String len = null;
while((len= buffr.readLine())!=null){
out.println(len);
}
buffr.close();
s.close();
}
}
/**
服务器端接收数据
步骤:
1、创建ServerSocket对象,设置绑定的端口号
2、调用accept方法获取客户端的Socket对象。
3、调用Socket.getOutputStream()对象将数据写到控制台上。
*/
class TCPServer{
public static  void main(String args[])throws Exception{
/*
ServerSocket(int port) 
          创建绑定到特定端口的服务器套接字。
*/
ServerSocket ss = new ServerSocket(8888);
/**
accept() 
          侦听并接受到此套接字的连接。
*/
Socket s = ss.accept();
BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));
String len = null;
while((len=bufr.readLine())!=null){
System.out.println(len);
}
}
}
public class TCPTest{
public static void main(String args[]){}
}

UDP协议实例:

import java.io.*;
import java.net.*;


/**
 * UDP客户端 发送信息。
 * 步骤:
 * 1、创建DatagramPacket对象,设置缓冲区、长度、连接服务器的端口号和IP
 * 2、创建DatagramSocket对象,调用send方法发送。
 * @author admin
 *
 */
class UDPSend {
public static void main(String args[]) throws Exception{
//控制键盘输入。
BufferedReader in
  = new BufferedReader(new InputStreamReader(System.in));
//转换成byte数组,想服务器端发送
String len = null;
DatagramSocket ds = new DatagramSocket();
while((len = in.readLine())!=null){
if("over".equals(len))
break;
byte[] buf = len.getBytes();
DatagramPacket dgp = new DatagramPacket(buf, buf.length, 
new InetSocketAddress("192.168.51.23",10003) );
ds.send(dgp);
}
ds.close();
}
}




/**
 * 服务器端接收数据:
 * 步骤:
 * 1、创建DatagramSocket对象,指定的端口。
 * 2、创建DatagramPacket对象,准备一个数据包接收客户端传来的额数据
 * 3、调用receive方法接收数据包。
 * 4、将接收的数据包,通过IO解析到控制台中。
 * @author admin
 *
 */


class UDPRece {
public static void main(String args[]) throws Exception {
/**
* DatagramSocket(int port) 
          创建数据报套接字并将其绑定到本地主机上的指定端口。
*/
DatagramSocket ds = new DatagramSocket(10003);
/**
* DatagramPacket(byte[] buf, int length) 
          构造 DatagramPacket,用来接收长度为 length 的数据包。
*/
byte[] buf = new byte[1024];
while(true){
DatagramPacket dp= new DatagramPacket(buf, buf.length);
ds.receive(dp);
String str = new String(buf);
//获得客户端ip
String ip = dp.getAddress().getHostAddress();
System.out.println("IP::"+ip+"内容::"+str);
}
// ds.close();
}
}


/**
 * DatagramPacket(byte[] buf, int length, SocketAddress address) 
          构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
 * @author admin
 *
 */
public class UDPTest {
public static void main(String[] args) throws Exception{

}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值