首页 > 试题广场 >

使用 Socket 编写一个程序,客户端向服务器端发送请求(

[问答题]
使用 Socket 编写一个程序,客户端向服务器端发送请求(发送字符串即可),服务端接收后发送反馈信息 .
//TCP
//Client客户端
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket = new Socket("127.0.0.1", 8888);
OutputStream os = socket.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
Scanner scanner = new Scanner(System.in);
// 输入流读取服务器端发送过来的数据
InputStream is = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
while(true){
String string = scanner.next();
writer.write(string);
writer.newLine();
writer.flush();
if(string.equals("exit")){
break;
}
// 开始接收服务端发送的数据
String string2 = reader.readLine();
System.out.println("客户端接收到:   "+string2);
if(string2.equals("exit")){
break;
}
}
if(reader!=null){
reader.close();
}
if(is!=null){
is.close();
}
if(writer != null){
writer.close();
}
if(os!=null){
os.close();
}
if(socket!=null){
socket.close();
}
}
}
//Server服务端
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
// 流用来客户端循环发送
OutputStream os  = socket.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
Scanner scanner = new Scanner(System.in);
while(true){
String string = reader.readLine();
System.out.println("服务端接收"+string);
if(string.equals("exit")){
break;
}
String str  = scanner.next();
writer.write(str);
writer.newLine();
writer.flush();
if(str.equals("exit")){
break;
}
}
if(writer!=null){
writer.close();
}
if(os!=null){
os.close();
}
if(reader!=null){
reader.close();
}
if(is!=null){
is.close();
}
if(socket!=null){
socket.close();
}
if(serverSocket!=null){
serverSocket.close();
}
}
}

编辑于 2017-02-25 22:36:35 回复(0)