我是新手,所以会问这些问题,我看了一些书,还是没有懂
下面是我写的初始化,不知道写得对不对,不知道后面怎么写了 Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress sIP = IPAddress.Parse("127.0.0.1");
IPEndPoint server = new IPEndPoint(sIP, 80);
sk.Bind(server);
sk.Listen(10);
TcpListener listener = new TcpListener(80);
listener.Start();
Console.WriteLine("服务初始化成功,开始侦听...")
下面是我写的初始化,不知道写得对不对,不知道后面怎么写了 Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress sIP = IPAddress.Parse("127.0.0.1");
IPEndPoint server = new IPEndPoint(sIP, 80);
sk.Bind(server);
sk.Listen(10);
TcpListener listener = new TcpListener(80);
listener.Start();
Console.WriteLine("服务初始化成功,开始侦听...")
解决方案 »
- 怎么取出网页源码中给定的数据,并存入MSSQL数据库
- .net(C#)winform窗体打印
- DataGridViewTextBoxColumn内绑定数据如何做到
- 用C#如何控制io接口
- 怎么判断一个数组为空
- C#里数据库怎么实现外键?
- StreamReader.ReadLine()读文本文件时,当一行大于162个字符时,出现数据丢失,如何对付?
- C#如何调用WebBrowser控件的BeforeNavigate2方法获得URL参数?
- TabControl自绘选项卡
- 关于透明窗体
- 高手帮详细解答下面试题
- 我现在用08,不管是打开VS,而是双击一个sln,打开后都先到"起始页",怎么不显示这个直接打开代码页?
Socket在Listen,后面又来个TcpListener监听80。这怎么行呢?
这里有很多.
namespace NGN
{
public partial class Form1 : Form
{
public Form1()
{
///
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false;
}
private IPAddress hostIPAddress = IPAddress.Parse("127.0.0.1");
private IPEndPoint Server;
private Socket listeningSocket;
private Socket mySocket;
//private string receivedata="";
/***********************
*****定义const常量*****
***********************/
//无事件
private const int Event_None = 0;
//insert告警
private const int Event_DataInsert = 1;
//update告警
private const int Event_DataUpdate = 2;
[STAThread]
/************************
*******发送数据*********
************************/
public void SendData()
{
Socket sendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint client = new IPEndPoint(hostIPAddress, 1122);
//sendSocket.Connect();
}
/************************
*******端口监听*********
************************/
public void ReceiveData()
{
try
{ Thread thread = new Thread(new ThreadStart(ThreadProc));
thread.Start();
//}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
/************************
*******数据接收*********
************************/
public void begin()
{
if (listeningSocket != null && listeningSocket.Connected)
{
mySocket = listeningSocket.Accept();
Thread thread = new Thread(new ThreadStart(ThreadProc));
thread.Start();
}
} public void ThreadProc()
{
//创建接收数据的Socket
listeningSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//设置接收数据的地址
Server = new IPEndPoint(hostIPAddress, 1122);
//绑定主机端口
listeningSocket.Bind(Server);
//监听端口,设置队列数为50
listeningSocket.Listen(50);
this.label5.Text = "主机正在监听……";
//以同步方式从侦听,并返回第一个挂起的连接请求
//while (true)
//if (listeningSocket.Connected)
//{
mySocket = listeningSocket.Accept();
try
{
//while (true)
{
//if (mySocket.Poll(1, SelectMode.SelectRead))
//if (listeningSocket.Connected)
{
//mySocket = listeningSocket.Accept();
if (mySocket != null && mySocket.Connected)
{
//this.label5.Text = "与客户建立连接";
int i = 1;
while (true)
{
//设置接收数据缓冲区的大小
Byte[] recData = new Byte[512];
mySocket.Receive(recData);
int len = recData.Length;
string ReceiveString = Encoding.GetEncoding("ASCII").GetString(recData);
//receivedata = Encoding.ASCII.GetString(recData);
if (ReceiveString != "")
{
string sendstr = "这是接收到的第" + i + "条信息";
i++;
byte[] bs = Encoding.GetEncoding("utf-8").GetBytes(sendstr);
mySocket.Send(bs, bs.Length, 0);
ReceiveDo(ReceiveString);
}
}
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
/************************
*******监听停止*********
************************/
public void StopListen()
{
try
{
listeningSocket.Close();
label5.Text = "主机停止了监听";
}
catch
{
MessageBox.Show("监听尚未开始");
}
}
/************************
*******划分字段*********
************************/
public string[] ExecuteData(string ReceiveString)
{
int start = ReceiveString.IndexOf(':',0);
int end = ReceiveString.LastIndexOf('n');
string DataString = ReceiveString.Substring(start + 1, end - start-4 );
string[] CurrentList = DataString.Split('|');
return CurrentList;
}
/************************
*******判断事件*********
************************/
public int GetEvent(string EventString)
{
if (EventString.Contains("insert"))
return Event_DataInsert;
else if (EventString.Contains("update"))
return Event_DataUpdate;
else
return Event_None;
}
public string SetSql(int Event,string[] DataList)
{
StringBuilder SqlBuilder = new StringBuilder();
switch (Event)
{
case Event_DataInsert:
SqlBuilder.Append("insert into boshan values (");
SqlBuilder.Append(""+DataList[0]+",");//Domain
SqlBuilder.Append(DataList[1] + ",");//SubDomain
SqlBuilder.Append("'" + DataList[2] + "',");//EMSName
SqlBuilder.Append("'" + DataList[3] + "',");//Node
SqlBuilder.Append("'" + DataList[4] + "',");//NodeAlias
SqlBuilder.Append("" + DataList[5] + ",");//Severity
SqlBuilder.Append("'" + DataList[6] + "',");//AlertName
SqlBuilder.Append("'" + DataList[7] + "',");//AlertType
SqlBuilder.Append("'" + DataList[8] + "',");//AlertSourceType
SqlBuilder.Append("'" + DataList[9] + "',");//AlertInfo2
SqlBuilder.Append("'" + DataList[10] + "',");//AlertInfo4
SqlBuilder.Append("'" + DataList[11] + "',");//Acknowledged
SqlBuilder.Append("'" + Convert.ToDateTime(DataList[12]) + "',");//AcknowledgedTime
SqlBuilder.Append("'" + Convert.ToDateTime(DataList[13]) + "',");//FirstNMSTime
SqlBuilder.Append("'" + Convert.ToDateTime(DataList[14]) + "',");//LastNMSTime
SqlBuilder.Append("'" + DataList[15]+"'"); //Summary
SqlBuilder.Append(")");
break;
case Event_DataUpdate:
SqlBuilder.Append("update baoshan set ");
SqlBuilder.Append("Domain=" + DataList[1] + ",");//Domain
SqlBuilder.Append("SubDomain=" + DataList[2] + ",");//SubDomain
SqlBuilder.Append("EMSName='" + DataList[3] + "',");//EMSName
SqlBuilder.Append("Node='" + DataList[4] + "',");//Node
SqlBuilder.Append("NodeAlias='" + DataList[5] + "',");//NodeAlias
SqlBuilder.Append("Severity='" + DataList[6] + "',");//Severity
SqlBuilder.Append("AlertName='" + DataList[7] + "',");//AlertName
SqlBuilder.Append("AlertType='" + DataList[8] + "',");//AlertType
SqlBuilder.Append("AlertSourceType='" + DataList[9] + "',");//AlertSourceType
SqlBuilder.Append("AlertInfo2='" + DataList[10] + "',");//AlertInfo2
SqlBuilder.Append("AlertInfo4='" + DataList[11] + "',");//AlertInfo4
SqlBuilder.Append("Acknowledged='" + DataList[12] + "',");//Acknowledged
SqlBuilder.Append("AcknowledgedTime='" + Convert.ToDateTime(DataList[13]) + "',");//AcknowledgedTime
SqlBuilder.Append("FirstNMSTime='" + Convert.ToDateTime(DataList[14]) + "',");//FirstNMSTime
SqlBuilder.Append("LastNMSTime='" + Convert.ToDateTime(DataList[15]) + "',");//LastNMSTime
SqlBuilder.Append("Summary='" + DataList[16] + "'");//Summary
SqlBuilder.Append("where identifier="+DataList[0]);
break;
default:
break; }
string Sql = SqlBuilder.ToString();
//MessageBox.Show(Sql);
return Sql;
}
/************************
*******数据处理*********
************************/
public void DataHandle(string sql)
{
try
{
SqlConnection conn1 = new SqlConnection("user id=sa;database=.;initial catalog=NGN;");
SqlCommand cmd = new SqlCommand(sql, conn1);
conn1.Open();
cmd.ExecuteNonQuery();
conn1.Close();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
/************************
*******综合处理*********
************************/
public void ReceiveDo(string DataString)
{
//textBox3.Text=DataString;
string[] DataList=ExecuteData(DataString);
foreach (string data in DataList)
{
textBox3.AppendText(data + "\r\n");
}
int Event = GetEvent(DataString);
string Sql = SetSql(Event, DataList);
DataHandle(Sql);
}
//NGNlogic logic;
//NGNbean bean;
private void Form1_Load(object sender, EventArgs e)
{
//logic = new NGNlogic();
//string[] DataList= ExecuteData("insert:aaa|bbb|ccc|ddd\r\n");
//foreach (string data in DataList)
//{
// Console.Write(data);
// textBox3.AppendText(data);
//}
//int Event = logic.GetEvent(DataList[0]);
}
private void button1_Click(object sender, EventArgs e)
{ //bean = new NGNbean();
////bean.abc();
//bean.ReceiveData();
ReceiveData();
} private void button2_Click(object sender, EventArgs e)
{
//bean = new NGNbean();
//bean.StopListen();
StopListen();
} private void timer1_Tick(object sender, EventArgs e)
{
} }
}