永发信息网

C#如何实现网口通讯?

答案:3  悬赏:10  手机版
解决时间 2021-02-18 10:39
C#如何实现网口通讯?
最佳答案
网口通迅啊,你的意思是通过网络和别的计算机通信吗?如果是的话那就是socket通信了,我给你个例子看看
服务器端:
try
{
int port = 2000;
string host = "176.64.158.112";
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket类
s.Bind(ipe);//绑定2000端口
s.Listen(0);//开始监听
ShowMessage("Waitforconnect");
while (true)
{
Socket temp = s.Accept();//为新建连接创建新的Socket。
ShowMessage("Getaconnect from " + temp); //this.Invoke(new ShowMes(ShowMessage), "Getaconnect");
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息
recvStr = Encoding.ASCII.GetString(recvBytes, 0, bytes);
ShowMessage(String.Format("ServerGetMessage:{0}", recvStr));//this.Invoke(new ShowMes(ShowMessage), String.Format("ServerGetMessage:{0}", recvStr)); //把客户端传来的信息显示出来
string sendStr = "Ok!ClientSendMessageSucessful!";
byte[] bs = Encoding.ASCII.GetBytes (sendStr);
temp.Send(bs, bs.Length, 0);//返回客户端成功信息
}
//temp.Close();
//s.Close();
}
catch (ArgumentNullException e)
{
ShowMessage(String.Format("ArgumentNullException:{0}", e));
}
catch (SocketException e)
{
ShowMessage(String.Format("SocketException:{0}", e));
}
Console.WriteLine("PressEntertoExit");
客户端:
try
{
Socket c;
int port = 2000;
string host = "176.64.158.112";
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndPoint实例
c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket
ShowMessage("Conneting...");
c.Connect(ipe);//连接到服务器
string sendStr = "hello!This is a socket test";
byte[] bs = Encoding.ASCII.GetBytes(sendStr);
ShowMessage("SendMessage");
c.Send(bs, bs.Length, 0);//发送测试信息
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息
if (bytes <= 0)
break;
recvStr = Encoding.ASCII.GetString(recvBytes, 0, bytes);
ShowMessage(String.Format("ClientGetMessage:{0}", recvStr));//显示服务器返回信息
sendStr = "hello!This is a socket test";
bs = Encoding.ASCII.GetBytes(sendStr);
ShowMessage("SendMessage");
c.Send(bs, bs.Length, 0);//发送测试信息
Thread.Sleep(100);
c.Close();
}
catch (ArgumentNullException e)
{
ShowMessage(String.Format("ArgumentNullException:{0}", e));
}
catch (SocketException e)
{
ShowMessage(String.Format("SocketException:{0}", e));
}
ShowMessage(String.Format("PressEntertoExit"));
全部回答
买个路由器
网络TCP通讯通常使用Socket(套接字)字的形式。
关于具体怎么通讯,可以在百度一下“C#网络通讯编程”
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么现在的男女动不动就与人上床呢
我在移动营业厅买的华为荣耀8青春版手机1499,
陕西医疗器械采供站这个地址在什么地方,我要
相城区太平镇兴太路15号到苏州市相城区太平工
飞利浦呼吸机757和767有哪些区别
如何去发展钣金行业?钣金行业的发展方向是什
聚家乐果品怎么样
买回来的李子要怎么保存,才不会让它变不脆掉?
索尼f15a16 怎么样
求末世女配文 (附简介)
winXP电脑创建本地连接时候创建创建不成功!
饲料中粗灰分含量达到多少能致鸭死亡
雨露玫瑰汗蒸美容美发足疗修美专业烫染这个地
下列所示的实验中,只发生物理变化的是B水的
ZIPPO底刻商标右侧有罗马数字XIII代表哪年?
推荐资讯
只要功夫深铁许磨成针的意思是什么
p-干燥的定义是什么?
大话2黄金亲密到多少好啊
正规篮球比赛中,投篮时,从下面投进篮筐然后球
无锡新区有哪些电子厂?
郴州的金科钻石山在哪呢,过去方便吗,朋友说
【一亩地多少平米】一亩地等于多少平米?4分地
将重组DNA导入细菌细胞内的过程一般称为A. 细
dnf赛丽亚的幸运最多能开出来多少宇宙灵魂
城市空间这个地址在什么地方,我要处理点事
天安保险工作怎么样
是不是河南人都很讨厌!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?