200分征C#高手来,关于socket双向通信问题,解决了给200分
答案:1 悬赏:0 手机版
解决时间 2021-03-02 17:02
- 提问者网友:放下
- 2021-03-01 22:57
200分征C#高手来,关于socket双向通信问题,解决了给200分
最佳答案
- 五星知识达人网友:野味小生
- 2021-03-01 23:28
服务端代码:
int port = 2000;
string host = "202.103.152.37";
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Bind(ipe);
s.Listen(1024);
Socket temp = s.Accept();
Console.WriteLine("与客户端连接成功");
while (true)
{
string recvstr = "";
byte[] recvbytes = new byte[1024];
int bytes;
bytes = temp.Receive(recvbytes, recvbytes.Length, 0);
recvstr += Encoding.Unicode.GetString(recvbytes, 0, bytes);
Console.WriteLine(recvstr);
temp.Send(recvstr);//直接用当前接收客户端的Socket 发送信息到客户端
}
客户端代码:
TcpClient client = new TcpClient("123.138.20.64", 2000);
NetworkStream net = client.GetStream();
if (client.Connected)
{
Console.WriteLine("与服务器连接成功");
while (true)
{
string str1 = Console.ReadLine();
byte[] b = Encoding.Unicode.GetBytes(str1);
net.Write(b, 0, b.Length);
}
byte[] buffer = new byte[1024];//定义缓存区
do{
int receivedBytesLength = stream.Read(buffer, 0, buffer.Length);//接收服务器端发来的数据
if(receivedBytesLength > 0)//根据接收数据的长度判断是否有数据
{
string text = Encoding.GetEncoding("gb2312").GetString(buffer, 0, receivedBytesLength);
Console.WriteLine(text);//输出
}
else
{
break;
}
}while(stream.DataAvailable);
一不小心点了提交,想要修改却说你的回答过于频繁请稍后再提交,日~~~追问这样根本连接不上啊
int port = 2000;
string host = "202.103.152.37";
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Bind(ipe);
s.Listen(1024);
Socket temp = s.Accept();
Console.WriteLine("与客户端连接成功");
while (true)
{
string recvstr = "";
byte[] recvbytes = new byte[1024];
int bytes;
bytes = temp.Receive(recvbytes, recvbytes.Length, 0);
recvstr += Encoding.Unicode.GetString(recvbytes, 0, bytes);
Console.WriteLine(recvstr);
temp.Send(recvstr);//直接用当前接收客户端的Socket 发送信息到客户端
}
客户端代码:
TcpClient client = new TcpClient("123.138.20.64", 2000);
NetworkStream net = client.GetStream();
if (client.Connected)
{
Console.WriteLine("与服务器连接成功");
while (true)
{
string str1 = Console.ReadLine();
byte[] b = Encoding.Unicode.GetBytes(str1);
net.Write(b, 0, b.Length);
}
byte[] buffer = new byte[1024];//定义缓存区
do{
int receivedBytesLength = stream.Read(buffer, 0, buffer.Length);//接收服务器端发来的数据
if(receivedBytesLength > 0)//根据接收数据的长度判断是否有数据
{
string text = Encoding.GetEncoding("gb2312").GetString(buffer, 0, receivedBytesLength);
Console.WriteLine(text);//输出
}
else
{
break;
}
}while(stream.DataAvailable);
一不小心点了提交,想要修改却说你的回答过于频繁请稍后再提交,日~~~追问这样根本连接不上啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯