开发的步骤
1.服务器端:
创建ServerSocket对象(并绑定端口)
调用accept方法,等待来自客户端的连接
调用getXXXStream方法,进行I/O
关闭Socket
2.客户端:
创建Socket对象,并连接服务器
调用getXXXStream方法,进行I/O
关闭Socket。
代码实现过程:
客户端:
package com.xja.net.server;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String message = br.readLine();
System.out.println("接受到客户端的信息为:" + message);
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
代码实现过程:
package com.xja.net.client;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
public class MyClient {
public static void main(String[] args) {
//1.创建Socket对象,并连接服务器
try {
Socket s = new Socket("127.0.0.1", 9000);
System.out.println("开始向服务器发送消息");
PrintWriter pw = new PrintWriter(s.getOutputStream());
pw.println("hello server!");
pw.flush();
System.out.println("消息发送完成");
//关闭Socket
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
1.运行:客户端需要去连接服务器,所以服务器要先运行,后运行客户端
2.服务器不要多次启动,多次启动或多次开启同一个端口,产生异常,端口冲突异常
演示的结果:
正常运行的效果:



