//ソケット要求を受信する準備ができました
//新しいソケットを作成しますソケットを作成します
//Socket(AddressFamily.InterNetwork、SocketType.Stream、ProtocolType.Tcp);この行はソケットを作成し、その3つのパラメーターはアドレスファミリ、ソケットを表しますタイプとプロトコル。アドレスファミリは、IPv4とIPv6のどちらを使用するかを示します。この例では、IPv4、つまりInterNetworkが使用されています。
Socket listenfd = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//Bind指定套接字的IP和端口
//listenfd.Bind(ipEp) 将给listenfd套接字绑定IP和端口。 示例程序中绑定的是本地地址“127.0.0.1”和1234号端口。 127.0.0.1是回送地址, 指本地机, 一般用于测试。 读者也可以设置成真实的IP地址, 然后在两台电脑上分别运行客户端和服务端程序。
IPAddress ipAdr = IPAddress.Parse("127.0.0.1");//根据IP地址创建IPAddress对象,如IPAddress.Parse("192.168.1.1")
IPEndPoint ipEp = new IPEndPoint(ipAdr, 1234);//用IPAddress指定的地址和端口号初始化
//服务端通过listenfd.Listen(0) 开启监听, 等待客户端连接。 参数backlog指定队列中最多可容纳等待接受的连接数, 0表示不限制
listenfd.Bind(ipEp);//忘记bind就会报错“提供了一个无效的参数”
listenfd.Listen(10);
Console.WriteLine("[服务器]启动成功");
****
listenfd.Bind(ipEp); //バインドを忘れると、「無効なパラメーターが指定されました」というエラーが表示されます。!!それを記録する
****