C#的web项目怎么实现tcp/ip通信呢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#的web项目怎么实现tcp/ip通信呢相关的知识,希望对你有一定的参考价值。
现在项目是基于.net平台的,我作为服务器会接收到许多来自客户端的tcp请求,目前没有什么思路,求解啊。另外有什么现成的解决方案吗
服务端usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Net;usingSystem.Net.Sockets;namespaceSocketSerclassProgram[STAThread]staticvoidMain(string[]args)intrecv;byte[]data=newbyte[1024];IPEndPointipep=newIPEndPoint(IPAddress.Any,9050);Socketnewsock=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);newsock.Bind(ipep);newsock.Listen(10);Console.WriteLine("等待客户端连接中。。。");Socketclient=newsock.Accept();IPEndPointclientip=(IPEndPoint)client.RemoteEndPoint;Console.WriteLine("已连接的客户端:"+clientip.Address+",端口"+clientip.Port);stringwelcome="welcomehere!";data=Encoding.ASCII.GetBytes(welcome);client.Send(data,data.Length,SocketFlags.None);//发送信息while(true)//用死循环来不断的从客户端获取信息data=newbyte[1024];recv=client.Receive(data);Console.WriteLine("recv="+recv);if(recv==0)//当信息长度为0,说明客户端连接断开break;Console.WriteLine(Encoding.ASCII.GetString(data,0,recv));client.Send(data,recv,SocketFlags.None);Console.WriteLine("已断开从"+clientip.Address+"的连接。");client.Close();newsock.Close();客户端usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Net;usingSystem.Net.Sockets;namespaceSocketCliclassProgram[STAThread]staticvoidMain(string[]args)////TODO:在此处添加代码以启动应用程序//byte[]data=newbyte[1024];Socketnewclient=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//Console.Write("请输入服务器");//stringipadd=Console.ReadLine();//Console.WriteLine();//Console.Write("pleaseinputtheserverport:");//intport=Convert.ToInt32(Console.ReadLine());IPEndPointie=newIPEndPoint(IPAddress.Parse("192.168.1.2"),9050);//服务器的IP和端口try//因为客户端只是用来向特定的服务器发送信息,所以不需要绑定本机的IP和端口。不需要监听。newclient.Connect(ie);catch(SocketExceptione)Console.WriteLine("未连接服务器");Console.WriteLine(e.ToString());Console.ReadLine();return;intrecv=newclient.Receive(data);stringstringdata=Encoding.ASCII.GetString(data,0,recv);Console.WriteLine(stringdata);while(true)stringinput=Console.ReadLine();if(input=="exit")break;newclient.Send(Encoding.ASCII.GetBytes(input));data=newbyte[1024];recv=newclient.Receive(data);stringdata=Encoding.ASCII.GetString(data,0,recv);Console.WriteLine(stringdata);Console.WriteLine("disconnectfromsercer");newclient.Shutdown(SocketShutdown.Both);newclient.Close();追问代码这格式...
参考技术A 你在服务端设置socket连接,给每个连接进来的客户端都定一个唯一的ID,接收请求然后分析,在返回信息,可以看看网络版坦克大战,就是有服务端和客户端通信追问昨天到现在我都在看,demo也在写,不过都是控制台程序的,如果我是web项目,怎么来实现呢,是web项目启动时就启动监听这种方式,还是发布控制台程序的项目和我的web项目进行交互呢。没有思路。
追答服务端的话项目启动就开始监听吧
本回答被提问者采纳以上是关于C#的web项目怎么实现tcp/ip通信呢的主要内容,如果未能解决你的问题,请参考以下文章
如何编程使上位机(界面c#)与下位机(单片机keil c)通过TCP/UDP协议来实现通信,最好有源代码,谢谢~~