客户端连接服务器客户端向服务器发送字符串服务器接收客户端发送的字符串服务器向客户端发送接收到的字符串如果向客户端发送字符串“bye”,服务器和客户端就断开连接 流程图 服务器端流程图 客户端流程图 代码实现 服务器端代码
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Test3 {
public static void main(String[] args) {
try {
int port = 13;
ServerSocket serverSocket = new ServerSocket();
serverSocket.bind(new InetSocketAddress(port));
while (true) {
Socket clientSocket = serverSocket.accept();
OutputStream output = clientSocket.getOutputStream();
InputStream input = clientSocket.getInputStream();
while (clientSocket.isConnected()) {
byte[] b = new byte[255];
input.read(b);
int len = 0;
for (int i = 0; i < b.length; ++i) {
if (b[i] == 0) {
len = i;
break;
}
}
String str = new String(b,0,len);
if (str.equals("bye")) {
break;
} else {
output.write(b);
}
}
clientSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端代码
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
try {
int port = 13;
String ipaddr = "127.0.0.1";
InetSocketAddress socketAddress = new InetSocketAddress(ipaddr,port);
Socket clientSocket = new Socket();
clientSocket.connect(socketAddress);
InputStream input = clientSocket.getInputStream();
OutputStream output = clientSocket.getOutputStream();
while (clientSocket.isConnected()) {
System.out.print("请输入字符串:");
Scanner sc = new Scanner(System.in);
String st = sc.nextLine();
byte[] b = st.getBytes();
byte[] in = new byte[255];
output.write(b);
if (st.equals("bye")) {
clientSocket.close();
break;
} else {
input.read(in);
int len = 0;
for (int i = 0; i < in.length; ++i) {
if (in[i] == 0) {
len = i;
break;
}
}
System.out.println(new String(in,0,len));
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行示例
请输入字符串:hello hello 请输入字符串:world world 请输入字符串:java java 请输入字符串:bye



