try
{
int port = 2000;
string host = "192.168.1.168";
string dbConnection = string.Empty;
dbConnection = "server=192.168.1.14;database=WZSQ;User ID=sa;Password=sa";
/**/
///创建终结点(EndPoint)
IPAddress ip = IPAddress.Parse(host);//把ip地址字符串转换为IPAddress类型的实例
IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的端口和ip初始化IPEndPoint类的新实例 /**/
///创建socket并开始监听
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字
s.Bind(ipe);//绑定EndPoint对像(2000端口和ip地址)
SqlConnection conn = new SqlConnection(dbConnection);
while (true)
{
s.Listen(0);//开始监听
Console.WriteLine("等待客户端连接"); /**/
///接受到client连接,为此连接建立新的socket,并接受信息 Socket temp = s.Accept();//为新建连接创建新的socket
Console.WriteLine("建立连接");
string recvStr = "";
byte[] recvBytes = new byte[1024];
//byte[] recvBytes = new byte[1024*1024];
int bytes;
string sql = string.Empty;
bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
string[] wbxxArr = recvStr.Split('#');
string[] EN=wbxxArr[8].Split(',');
DateTime dt=Convert.ToDateTime(wbxxArr[9].Substring(4,2)+"-"+wbxxArr[9].Substring(2,2)+"-"+wbxxArr[9].Substring(0,2)+" "+wbxxArr[10].Substring(0,2)+":"+wbxxArr[10].Substring(2,2)+":"+wbxxArr[10].Substring(4,2));
Console.WriteLine(dt);
sql = "insert into wz_wanbiao(l_EMI,l_name,l_status,l_pass,l_type,l_amount,l_cell,l_E,l_N,l_Speed,l_Course,l_datetime) values('" + wbxxArr[1] + "','" + wbxxArr[2] + "'," + Convert.ToInt32(wbxxArr[3]) + ",'" + wbxxArr[4] + "','" + wbxxArr[5] + "'," + Convert.ToInt32(wbxxArr[6]) + ",'" + wbxxArr[7] + "'," + Convert.ToDouble(EN[0]) + "," + Convert.ToDouble(EN[2]) + "," + Convert.ToDouble(EN[4]) + "," + Convert.ToDouble(EN[5]) + ",'" + dt + "')";
Execute_SQL(sql, conn);
Console.WriteLine(sql);
foreach (string i in wbxxArr)
{
Console.WriteLine(i.ToString());
} /**/
///给client端返回信息
///
Console.WriteLine("server get message:{0}", recvStr);//把客户端传来的信息显示出来
//string sendStr = "ok!Client send message successful!";
//byte[] bs = Encoding.ASCII.GetBytes(sendStr);
//temp.Send(bs, bs.Length, 0);//返回信息给客户端
temp.Close();
}
//s.Close();
//Console.ReadLine();
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: {0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
} Console.WriteLine("Press Enter to Exit");
Console.ReadLine();
把代码贴出来请高手指点,我收到数据一次,或者两三次以后就收不到,请高手指点
{
int port = 2000;
string host = "192.168.1.168";
string dbConnection = string.Empty;
dbConnection = "server=192.168.1.14;database=WZSQ;User ID=sa;Password=sa";
/**/
///创建终结点(EndPoint)
IPAddress ip = IPAddress.Parse(host);//把ip地址字符串转换为IPAddress类型的实例
IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的端口和ip初始化IPEndPoint类的新实例 /**/
///创建socket并开始监听
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字
s.Bind(ipe);//绑定EndPoint对像(2000端口和ip地址)
SqlConnection conn = new SqlConnection(dbConnection);
while (true)
{
s.Listen(0);//开始监听
Console.WriteLine("等待客户端连接"); /**/
///接受到client连接,为此连接建立新的socket,并接受信息 Socket temp = s.Accept();//为新建连接创建新的socket
Console.WriteLine("建立连接");
string recvStr = "";
byte[] recvBytes = new byte[1024];
//byte[] recvBytes = new byte[1024*1024];
int bytes;
string sql = string.Empty;
bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
string[] wbxxArr = recvStr.Split('#');
string[] EN=wbxxArr[8].Split(',');
DateTime dt=Convert.ToDateTime(wbxxArr[9].Substring(4,2)+"-"+wbxxArr[9].Substring(2,2)+"-"+wbxxArr[9].Substring(0,2)+" "+wbxxArr[10].Substring(0,2)+":"+wbxxArr[10].Substring(2,2)+":"+wbxxArr[10].Substring(4,2));
Console.WriteLine(dt);
sql = "insert into wz_wanbiao(l_EMI,l_name,l_status,l_pass,l_type,l_amount,l_cell,l_E,l_N,l_Speed,l_Course,l_datetime) values('" + wbxxArr[1] + "','" + wbxxArr[2] + "'," + Convert.ToInt32(wbxxArr[3]) + ",'" + wbxxArr[4] + "','" + wbxxArr[5] + "'," + Convert.ToInt32(wbxxArr[6]) + ",'" + wbxxArr[7] + "'," + Convert.ToDouble(EN[0]) + "," + Convert.ToDouble(EN[2]) + "," + Convert.ToDouble(EN[4]) + "," + Convert.ToDouble(EN[5]) + ",'" + dt + "')";
Execute_SQL(sql, conn);
Console.WriteLine(sql);
foreach (string i in wbxxArr)
{
Console.WriteLine(i.ToString());
} /**/
///给client端返回信息
///
Console.WriteLine("server get message:{0}", recvStr);//把客户端传来的信息显示出来
//string sendStr = "ok!Client send message successful!";
//byte[] bs = Encoding.ASCII.GetBytes(sendStr);
//temp.Send(bs, bs.Length, 0);//返回信息给客户端
temp.Close();
}
//s.Close();
//Console.ReadLine();
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: {0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
} Console.WriteLine("Press Enter to Exit");
Console.ReadLine();
把代码贴出来请高手指点,我收到数据一次,或者两三次以后就收不到,请高手指点
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货