C#的web项目怎么实现tcp/ip通信呢
现在项目是基于.net平台的,我作为服务器会接收到许多来自客户端的tcp请求,目前没有什么思路,求解啊。另外有什么现成的解决方案吗...
现在项目是基于.net平台的,我作为服务器会接收到许多来自客户端的tcp请求,目前没有什么思路,求解啊。另外有什么现成的解决方案吗
展开
2个回答
2016-06-30
展开全部
服务端usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Net;usingSystem.Net.Sockets;namespaceSocketSer{classProgram{[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;namespaceSocketCli{classProgram{[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();}}}
追问
代码这格式...
展开全部
你在服务端设置socket连接,给每个连接进来的客户端都定一个唯一的ID,接收请求然后分析,在返回信息,可以看看网络版坦克大战,就是有服务端和客户端通信
追问
昨天到现在我都在看,demo也在写,不过都是控制台程序的,如果我是web项目,怎么来实现呢,是web项目启动时就启动监听这种方式,还是发布控制台程序的项目和我的web项目进行交互呢。没有思路。
追答
服务端的话项目启动就开始监听吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询