永发信息网

200分征C#高手来,关于socket双向通信问题,解决了给200分

答案:1  悬赏:0  手机版
解决时间 2021-03-02 17:02
200分征C#高手来,关于socket双向通信问题,解决了给200分
最佳答案
服务端代码:
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);

一不小心点了提交,想要修改却说你的回答过于频繁请稍后再提交,日~~~追问这样根本连接不上啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
立杰便利店我想知道这个在什么地方
射娘应该嫁哪个职业←
微信短信订货可以作为欠账凭证吗
b站的粉丝头衔叫什么
天丞美白机是唯一一个国内授权的知名品牌吗?
曼天雨品牌折扣店这个地址在什么地方,我要处
请问重庆有到广州的高铁吗?
生吃黄瓜有什么好处
广州永发汽车装潢在什么地方啊,我要过去处理
四川彝族居住哪些地方?
【讲师是什么职称】高校辅导员评讲师职称要具
proe wildfire5.0的工程图的手动标注很慢(就
名字叫孙春雨,给她订生日蛋糕上面要写什么比
人家给了条熏鱼怎么做着吃呀!
正宗龙岩牛系列地址在哪,我要去那里办事
推荐资讯
辽宁金正大生态工程有限公司这个地址在什么地
员工放假回家公司让他们帮着公司招工这样通知
(12分)阅读下列材料:材料一:最能体现人民
iphone7的home键可以调成无震动吗
人事行政制度包含在质量体系文件么
欧普厨电橱柜这个地址在什么地方,我要处理点
女主叫云萝的小说漫画家云起云落
除旧布新是什么动物???
用键盘如何播放和暂停网页中的视频
mine is in this bag. 的意思是什么?
将抛物线y2=4x沿向量a
数学随堂练1+2试卷期中练习B卷第23题怎么写?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?