实现客户端与服务端通信
服务端代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class OnewayServerSocket {
public static void main(String[] args) {
Socket socket =null;
BufferedReader br =null;
PrintWriter pw =null;
try{
ServerSocket serverSocket =new ServerSocket(6666);
System.out.println("服务端启动,开始监听");
socket =serverSocket.accept();
System.out.println("连接成功");
//读取客户端发送的消息
br =new BufferedReader(new InputStreamReader(socket.getInputStream()));
//向客户端发消息
pw =new PrintWriter(socket.getOutputStream());
while(true){
String str = br.readLine();
System.out.println("客户端说"+str);
if ("exit".equals(str))
break;
pw.println(str);
pw.flush();
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (pw!=null){
pw.close();
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
客户端如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class socketClient {
public static void main(String[] args) {
Socket socket =null;
Scanner scanner =null;
PrintWriter pw =null;
BufferedReader br=null;
try{
socket =new Socket("127.0.0.1",6666);
scanner =new Scanner(System.in);//键盘输入
pw = new PrintWriter(socket.getOutputStream());
//读取服务端
br= new BufferedReader(new InputStreamReader(socket.getInputStream())) ;
while(true){
//键盘输入
String str =scanner.nextLine();
pw.println(str);
pw.flush();
if ("exit".equals(str)){
break;
}
//读取返回的
String serverinbput = br.readLine();
System.out.println("服务端返回"+serverinbput);
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (scanner!=null){
scanner.close();
}
if (br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (pw!=null){
pw.close();
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
;
}
}
}
}
运行结果:
服务端启动:
客户端连接成功
客户端输入
服务端:
退出