Socket类
实现客户端套接字
构造方法:
public Socket(String host, int port);
创建套接字对象呢并将其连接到指定主机上的指定端口号。如果指定主机位null,则相当与指定地址为回送地址(127.0.0.1)
Socket client = new Socket("127.0.0.1", 8888);
ServerSocket类
实现了服务器套接字,该对象等待通过网络的请求。
构造方法:
public ServerSocket(int port);
成员方法:
侦听并接受连接,返回一个新的Socket对象,用于和客户端的实现通信。该方法会一直阻塞直到建立连接。
public Socket accept();
···
ServerSocket server = new ServerSocket(8088);
Socket socket = server.accept();
···
服务端:
public static void main(String[] args) {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(7777);
System.out.println("the service is runing .....");
Socket socket = serverSocket.accept();
System.out.println("connect.....");
InputStream in = socket.getInputStream(); //获取输入流
/* 转换流 */
BufferedReader reader = new BufferedReader(new InputStreamReader(in,"utf-8"));
OutputStream out = socket.getOutputStream();//获取输出流
String msg = null;
do {
msg = reader.readLine();
System.out.println("msg:" + msg);
}while(!"exit".equals(msg));
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
public static void main(String[] args) {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(7777);
System.out.println("the service is runing .....");
Socket socket = serverSocket.accept();
System.out.println("connect.....");
InputStream in = socket.getInputStream(); //获取输入流
/* 转换流 */
BufferedReader reader = new BufferedReader(new InputStreamReader(in,"utf-8"));
OutputStream out = socket.getOutputStream();//获取输出流
String msg = null;
do {
msg = reader.readLine();
System.out.println("msg:" + msg);
}while(!"exit".equals(msg));
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}