现在要实现监听777端口tcp数据包,获取类似“\abcxxxxx\abcxxxxx\abcxxx\end”数据,稍作处理后存入sqlserver。
知道winform可以使用socket,也写了个控制台的socket程序,能实现。
但问题是,外网ip服务器托管,不能用自己的程序(同时新手上路,对程序不是很有信心,因为要实现每秒接受约300个这样的数据包)所以不知道iis下能否实现。请各位指点一下啊!
对于iis,用的比较多的是asp,.net很少用,也没搜到相关的,实在没头绪了!就20分了。。

解决方案 »

  1.   

    可以调用
    aspx,WebServices,WCF后台都可以作为Socket服务端调用
      

  2.   


    protected void Application_Start(object sender, EventArgs e)
            {
                try
                {
                    TcpListener server = null;
                    Int32 port = 1232;
                    //设置TcpListener监听端口为1232.
                    IPAddress localAddr = IPAddress.Parse("192.168.1.3");
                    //创建 Server绑定到本机的2617端口;
                    server = new TcpListener(localAddr, port);
                    // 开始监听客户端的请求
                    server.Start();
                    HttpContext.Current.Application["XX"] = server;                //这里可以开启多个端口
                    //TcpListener server1 = null;
                    //Int32 port1 = 1252;
                    //IPAddress localAddr1 = IPAddress.Parse("192.168.1.3");
                    //server1 = new TcpListener(localAddr1, port1);
                    //server1.Start();            }
                catch (System.Exception exp)
                {
                    var str = exp.Message;
                }
                
            }
    protected void Button1_Click(object sender, EventArgs e) 
            { 
                f_getDataFromServer(); 
            }         private void f_getDataFromServer() 
            { 
                var server = (TcpListener)Application["XX"]; 
                TcpClient client = null; 
                if (Application["client"] == null) 
                { 
                    client = server.AcceptTcpClient(); 
                    Application["client"] = client; 
                } 
                else 
                { 
                    client = (TcpClient)Application["client"]; 
                } 
                var stream = client.GetStream(); 
                var msg = System.Text.Encoding.UTF8.GetBytes(Guid.NewGuid().ToString()); 
                try 
                { 
                    stream.Write(msg, 0, msg.Length); 
                } 
                catch (System.Exception exp) 
                { 
                    var errmsg = exp.Message; 
                    if (errmsg == "无法将数据写入传输连接: 您的主机中的软件中止了一个已建立的连接。。") 
                    { 
                        Application.Remove("client"); 
                        f_getDataFromServer(); 
                    } 
                } 
            }
      

  3.   

    楼上的。。我先看下protected void Application_Start。。