Java Socket
- Java Socket编程用于在不同JRE上运行的应用程序之间的通信。
- Java Socket编程可以是面向连接的或无连接的。
- Socket和ServerSocket类用于面向连接的套接字编程,- DatagramSocket和- DatagramPacket类用于无连接套接字编程。
此Demo将进行单向客户端和服务器通信。客户端将消息发送到服务器,服务器读取消息并打印。在这里,使用了两个类:Socket和ServerSocket。Socket类用于通信客户端和服务器。通过此类,我们可以读写消息。ServerSocket类在服务器端使用。ServerSocket类的accept()方法将阻止控制台,直到客户端连接为止。客户端成功连接后,它将在服务器端返回Socket的实例。

 Socket class
 套接字只是机器之间通信的端点。Socket类可用于创建套接字。
重要方法
| 方法 | 描述 | 
|---|---|
| 1)public InputStream getInputStream() | 返回与此socket连接的InputStream。 | 
| 2)public OutputStream getOutputStream() | 返回与此socket连接的OutputStream。 | 
| 3)public synchronized void close() | 关闭这个socket | 
ServerSocket class
 ServerSocket类可用于创建服务器套接字。该对象用于与客户端建立通信。
重要方法
| 方法 | 描述 | 
|---|---|
| 1) public Socket accept() | 返回socket,并在服务器和客户端之间建立连接。 | 
| 2) public synchronized void close() | 关闭服务器socket | 
具体实现
MyServer.java
import java.io.*;  
import java.net.*;  
public class MyServer {  
public static void main(String[] args){  
try{  
ServerSocket ss=new ServerSocket(6666);  
Socket s=ss.accept();//建立连接 
DataInputStream dis=new DataInputStream(s.getInputStream());  
String  str=(String)dis.readUTF();  
System.out.println("message= "+str);  
ss.close();  
}catch(Exception e){System.out.println(e);}  
}  
}  MyClient.java
import java.io.*;  
import java.net.*;  
public class MyClient {  
public static void main(String[] args) {  
try{      
Socket s=new Socket("localhost",6666);  
DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
dout.writeUTF("Hello Server");  
dout.flush();  
dout.close();  
s.close();  
}catch(Exception e){System.out.println(e);}  
}  
}