Socket -2 实现socket的简单通信

要求: 创建一个客户端, 向服务器发送数据

1.Client2:

public class Client {

/*属性:Socket,指定服务器的IP和端口*/
private Socket socket;
public Client(){
try {
socket = new Socket("localhost",8088);
} catch (Exception e) {
e.printStackTrace();
}
}
/**客户端开始工作的方法
public void start(){
try {
/*
* 通过Socket对象获取输出流,
* 将数据发送给服务器
*/
OutputStream os = socket.getOutputStream();
PrintWriter pw = 
new PrintWriter(
new OutputStreamWriter(os));
Scanner scan = new Scanner(System.in);
while(true){
String input = scan.next();
pw.println(input);
pw.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Client client = new Client();
client.start();
}

}

2.Server2
/**
 * 创建一个服务器,用来接收某一客户端发送
 * 的信息
 */
public class Server {
/*
* 属性:server,用来指定服务端的端口号
*/
private ServerSocket server;
public Server(){
try {
//指定服务端的端口号
server = new ServerSocket(8088);
} catch (Exception e) {
e.printStackTrace();
}
}
public void start(){
try {
/*
* 调用阻塞方法,进行监听客户端,获取
* Socket套接字对象。
*/
System.out.println("--等待连接--");
Socket socket = server.accept();
System.out.println("--连接成功--");  
 // 通过套接字获取输入流对象  
InputStream is = socket.getInputStream();
BufferedReader br = 
new BufferedReader(
new InputStreamReader(is));

String line = "";
while((line=br.readLine())!=null){
System.out.println("服务端:"+line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Server server = new Server();
server.start();
 // Address is already use:jvm_bind;  
}
}
3.结果
    先运行服务器等待连接,再运行客户端-输入信息,回车,即出现客户端发送服务端的消息,

                      



猜你喜欢

转载自blog.csdn.net/xiaozelulu/article/details/80188128