TCP 实现聊天
客户端
- 1.客户端得知道服务端地址
- 2.得知道服务端的端口号
- 3.通过Socket与服务端建立连接
- 4.通过输出流的方法发送信息
客户端代码如下:
package com.example.code.netWork;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* @author joy
* @version 1.0
* @date 2020/8/31 19:46
*/
public class SocketClientDemo {
public static void main(String[] args) throws IOException {
OutputStream out = null;
Socket socket = null;
//1.创建ip
try {
//得知服务端地址
InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
//服务端端口号
int port = 9999;
//通过socket建立连接
socket = new Socket(inetAddress,port);
out = socket.getOutputStream();
out.write("我是消息".getBytes());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
out.close();
socket.close();
}
}
}
服务端
- 服务端得设置端口号
- 通过socket与客户端建立连接
- 通过输入流得到客户端发送的输入流
- 通过将输入流写入字节数组输出流来打印信息
服务端代码如下:
package com.example.code.netWork;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author joy
* @version 1.0
* @date 2020/8/31 19:45
*/
public class socketServerDemo {
public static void main(String[] args) throws IOException {
Socket accept = null;
ByteArrayOutputStream out = null;
InputStream inputStream = null;
try {
ServerSocket serverSocket = new ServerSocket(9999);
while (true){
accept = serverSocket.accept();
inputStream = accept.getInputStream();
out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1){
out.write(buffer,0,len);
}
System.out.println(out.toString());
}
} catch (IOException e) {
e.printStackTrace();
}finally {
out.close();
inputStream.close();
accept.close();
}
}
}
本文由
没有翅膀却想飞上天空
原创发布于
阳光沙滩
,未经作者授权,禁止转载