java 的socket

1:服务器端(TCP协议的)

1:创建服务器端的Socket(TCP协议的),并制定绑定的端口

ServerSocket serverSocket=new ServerSocket(8888);
Socket socket=null;
System.out.println("***服务器即将启动,等待客户端的连接***");

2:调用accept()方法开始监听,等待客户端的连接

socket=serverSocket.accept();

3:获取输入流,并读取客户端信息

//获取字节流
InputStream is = socket.getInputStream();
//字节流转换字符流
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String info=null;
while((info=br.readLine())!=null){//循环读取客户端的信息
System.out.println("我是服务器,客户端说:"+info);}
socket.shutdownInput();//关闭输入流

4:关闭资源

br.close();
isr.close();
is.close();

2:客户端(TCP协议的)

1创建客户端Socket,指定服务器地址和端口

Socket socket=new Socket("localhost", 8888);

2.获取输出流,向服务器端发送信息

OutputStream os=socket.getOutputStream();//字节输出流
PrintWriter pw=new PrintWriter(os);//将输出流包装为打印流
pw.write("用户名:alice;密码:789");
pw.flush();
socket.shutdownOutput();//关闭输出流

3.关闭资源

br.close();
pw.close();
os.close();
socket.close();

反过来服务器向客户端发送和客户端向服务器发送是一样的。

1:服务器端(UDP协议的)

1.创建服务器端DatagramSocket,指定端口

DatagramSocket socket=new DatagramSocket(8800);

2.创建数据报,用于接收客户端发送的数据

byte[] data =new byte[1024];//创建字节数组,指定接收的数据包的大小
DatagramPacket packet=new DatagramPacket(data, data.length);

3.接收客户端发送的数据

System.out.println("****服务器端已经启动,等待客户端发送数据");
socket.receive(packet);//此方法在接收到数据报之前会一直阻塞

4.读取数据

String info=new String(data, 0,packet.getLength());
System.out.println("我是服务器,客户端说:"+info);

1:客户端(UDP协议的)

1.定义服务器的地址、端口号、数据

InetAddress address=InetAddress.getByName("localhost");
int port=8800;
byte[] data="用户名:admin;密码:123".getBytes();

//2.创建数据报,包含发送的数据信息

DatagramPacket packet=new DatagramPacket(data, data.length, address, port);

3.创建DatagramSocket对象

DatagramSocket socket=new DatagramSocket();

4.向服务器端发送数据报

socket.send(packet);
socket.close();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值