您的位置:首页 > 理论基础 > 计算机网络

C#学习笔记-socket通信(同步,客户端+服务器,TCP)

2016-04-14 18:07 696 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  socket C#