1、基于TCP的socket编程。
• java.net.ServerSocket是用来创建服务器端的套接字socket。
• java.net.Socket是用来创建客户端的套接字socket。
• InetAddress(java.net.InetAddress)类:用来表示IP地址。
•
凡事基于TCP创建的套接字可以叫做流套接字。
• 服务器端相当于一个监听器,用来监听端口。
• 服务器与客服端之间的通讯都是输入输出流来实现的。
服务器端代码如下:TcpServer
public class TcpServer {
private static boolean isruning = true;
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5583);
while (isruning) {
// 连接
Socket socket = serverSocket.accept();
System.out
.println("有新客户端(" + socket.getInetAddress() + ")连接。。");
OutputStream stream = socket.getOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(stream);
writer.write("hello socket!");
writer.flush();
writer.close();
System.out
.println("客户端(" + socket.getInetAddress() + ")会话结束。。");
}
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客户端代码如下
public class TcpClient {
public static void main(String[] args) {
String host = "localhost"; // 要连接的服务端IP地址
int port = 5583; // 要连接的服务端对应的监听端口
try {
// 与服务端建立连接
Socket client = new Socket(host, port);
InputStream inputStream = client.getInputStream();
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(reader);
String message = bufferedReader.readLine();
System.out.println(message);
bufferedReader.close();
client.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、基于UDP的socket编程。
创建流程如下:
•
java.net.