C#的web项目怎么实现tcp/ip通信呢

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式