Java网络编程TCP实现聊天功能

网友投稿 251 2022-10-14


Java网络编程TCP实现聊天功能

网络编程TCP实现聊天的前提还需要掌握IO流,话不多说,直接上代码!

客户端:

package com.kuang.lesson02;

import java.io.IOException;

import java.io.OutputStream;

import java.net.InetAddress;

import java.net.Socket;

//客户端

public class TcpClientDemo01 {

public static void main(String[] args) {

Socket socket = null;

OutputStream os = null;

try {

//1、要知道服务器的地址、端口号

InetAddress serverIP = InetAddress.getByName("127.0.0.1");

int port = 9999;

//2、创建一个socket连接

socket = new Socket(serverIP, port);

//3、发送消息IO流

os = socket.getOutputStream();

os.write("你好,Java".getBytes());

} catch (Exception e) {

e.printStackTrace();

} finally {

if (os != null) {

try {

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (socket != null) {

http:// try {

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

服务端:

package com.kuang.lesson02;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.ServerSocket;

impohttp://rt java.net.Socket;

//服务端

public class TcpServerDemo01 {

public static void main(String[] args) {

ServerSocket serverSocketADzpXDcaf = null;

Socket socket = null;

InputStream is = null;

ByteArrayOutputStream baos = null;

try {

//1、我得有一个地址

serverSocket = new ServerSocket(9999);

while (true) {

//2、等待客户端连接过来

socket = serverSocket.accept();

//3、读取客户端的消息

is = socket.getInputStream();

ADzpXDcaf //管道流

baos = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len;

while ((len = is.read(buffer)) != -1) {

baos.write(buffer, 0, len);

}

System.out.println(baos.toString());

}

} catch (Exception e) {

e.printStackTrace();

} finally {

//关闭资源

if (baos != null) {

try {

baos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (is != null) {

try {

is.chttp://lose();

} catch (IOException e) {

e.printStackTrace();

}

}

if (socket != null) {

try {

socket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (serverSocket != null) {

try {

serverSocket.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

运行结果:

1、首先运行服务端,等待接收消息,可以发现服务端一直在运行

2、接着运行客户端,发送消息,可以发现客户端运行结束

3、返回服务端查看,可以发现服务端已经接收到了客户端发送来的消息

4、由于是循环操作,所以只要客户端发送消息来,服务端就能接收到,可以实现多次发送消息。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SRv6规模部署,离不开测试技术保驾护航!
下一篇:WiFi 7就要来了,都有哪些提升?-道合顺大数据
相关文章

 发表评论

暂时没有评论,来抢沙发吧~