![](https://csdnimg.cn/release/download_crawler_static/8119973/bg4.jpg)
Socket(InetAddress address, int port);
Socket(InetAddress address, int port, boolean stream);
Socket(String host, int prot);
Socket(String host, int prot, boolean stream);
Socket(SocketImpl impl)
Socket(String host, int port, InetAddress localAddr, int localPort)
Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
ServerSocket(int port);
ServerSocket(int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)
其中 address、host 和 port 分别是双向连接中另一方的 IP 地址、主机名和端 口号,
stream 指明 socket 是流 socket 还是数据报 socket,localPort 表示本地主机的端口号,localAddr
和 bindAddr 是本地机器的地址(ServerSocket 的主机地址),impl 是 socket 的父类,既可以
用来创建 serverSocket 又可 以用来创建 Socket。count 则表示服务端所能支持的最大连接数。
例如:
Socket client = new Socket("127.0.01.", 80);
ServerSocket server = new ServerSocket(80);
注意,在选择端口时,必须小心。每一个端口提供一种特定的服务,只有给出正确的
端口,才 能获得相应的服务。0~1023 的端口号为系统所保留,例如 http 服务的端口号为 80,telnet
服务的端口号为 21,ftp 服务的端口号为 23, 所以我们在选择端口号时,最好选择一个大于 1023
的数以防止发生冲突。
在创建 socket 时如果发生错误,将产生 IOException,在程序中必须对之作出处理。
所以在创建 Socket 或 ServerSocket 是必须捕获或抛出例外。
4,简单的 Client/Server 程序
1. 客户端程序
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {