首先需要引用命名空间System.Net和System.Net.Socket,借用C#的Socket来实现服务器和客户端的交互
简单起见,服务器和客户端都在本机上
1服务器
定义Ip和端口
string ip = "127.0.0.1",int port =8000;
try catch语句套在服务器连接客户端的代码上,发生错误可查看错误类型
try
{
定义终端,创建Socket与之绑定,
IIPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ip), port);
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(ipe);
设置最大连接数
listener.Listen(1000);
接受和发送消息(接收需要创建新的Socket来接收,前一个Socket是用来监听连接的)
Socket mySocket = listener.Accept();(会堵塞,因为是同步)
byte[] bs = new byte[1024];
int n = mySocket.Receive(bs);
mySocket.Send(bs);
关闭服务器与客户端连接
mySocket.Close()
}
catch(Exception e)
{
Console.WritLine(e.Message);
}
2客户端
获得终端(服务器)
try{
IIPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ip), port);
创建Socket
Socket client = new Socket(ipe.AddressFamily,SocketType.Stream,ProtocolType.Tcp);
客户端连接终端(会堵塞,因为是同步)
client.Connect(ipe);
string data = "hello";
因为传输的数据是byte数组类型,所以要转成byte数组
byte[] bs = UTF8Encoding.UTF8.GetBytes(data);
client.Send(bs);
byte[] rev =new byte[256];
client.Receive(rev);
Console.WritLine(UTF8Encoding.UTF8.GetString(rev));
client.Close();.
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。