1,客户端(同步+TCP)
同步:程序会阻塞,等待网络通信的信息。
1-1,客服端(法1-Socket)
Socket socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//初始化套接字
socketClient .Connect("192.168.0.3", 8888);//连接服务器
byte[] byArr = new byte[1024];
........
Array.Clear(byArr, 0, byArr.Length);//清除数据
socketClient .Send(Encoding.ASCII.GetBytes("ClientConnect"));//发送数据
socketClient .Receive(byArr);//接收数据
sRecv = Encoding.ASCII.GetString(byArr);
注:
地址族(AddressFamily枚举),Socket 用来解析地址的寻址方案
套接字类型(SocketType枚举)
协议类型(ProtocolType枚举),TCP/UDP等
1-1,客服端(法2-TcpClient)
TcpClient tcpClient = new TcpClient();
tcpClient.Client.Connect("192.168.0.3", 8888);
byte[] byArr = new byte[1024];
........
Array.Clear(byArr, 0, byArr.Length);//清除数据
tcpClient.Send(Encoding.ASCII.GetBytes("ClientConnect"));//发送数据
tcpClient.Receive(byArr);//接收数据
sRecv = Encoding.ASCII.GetString(byArr);
2,服务器(同步+TCP)
2-1,服务器(法1-Socket)
IPEndPoint serverIP=new IPEndPoint(IPAddress.Any,8888);
Socket socketServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socketServer.Bind(serverIP);//绑定IP地址
socketServer.Listen(50);//监听端口
byte[] byArr = new byte[1024];
......
Socket socketClient = socketServer.Accept();//等待外部客户端连接
socketClient .Send(Encoding.ASCII.GetBytes("ConnectOK"));//发送数据
socketClient .Receive(byArr);//接收数据
sRecv = Encoding.ASCII.GetString(byArr);
2-1,服务器(法2-TcpListener )
TcpListener tcpListener = new TcpListener(8888);
tcpListener.Start();
byte[] byArr = new byte[1024];
......
Socket tcpClient= tcpListener.AcceptSocket();
tcpClient.Send(Encoding.ASCII.GetBytes("ConnectOK"));//发送数据
tcpClient.Receive(byArr);//接收数据
sRecv = Encoding.ASCII.GetString(byArr);