package JavaFour;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
/**
* @ClassName : SocketTest //类名
* @Description : 客户端和服务器端之间的测试 //描述
* @Author : Gao //作者
* @Date: 2022/3/12 18:56
*/
public class SocketTest {
@Test
public void customer(){
Socket socket = null;
OutputStream outputStream = null;
try {
//指定服务器的ip地址
InetAddress allByName = InetAddress.getByName("127.0.0.1");
//创建socket对象并把ip地址和port指明
socket = new Socket(allByName, 8885);
//获取输出流
outputStream = socket.getOutputStream();
//信息
outputStream.write("我是个大帅哥啊".getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
} finally {
/*
关闭连接
*/
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outputStream!=null){
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@Test
public void server(){
Socket socket = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
try {
//创建服务器端的ServerSocket,并指明端口号
ServerSocket serverSocket = new ServerSocket(8885);
//调用accept方法,获取客户端socket
socket = serverSocket.accept();
//获取输入流和转化流
inputStream = socket.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
char[] chars = new char[10];
int len;
while ((len=inputStreamReader.read(chars))!=-1){
String string = new String(chars, 0, len);
System.out.println(string);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (inputStream!=null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (inputStreamReader!=null){
try {
inputStreamReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
网络编程:模拟客户端与服务器端通信
于 2022-03-12 19:22:44 首次发布