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