111,120
社区成员
发帖
与我相关
我的任务
分享 private void StartListening()
{
IPAddress ipadddress = IPAddress.Parse("192.168.0.6");
TcpListener listener = new TcpListener(ipadddress, port);
listener.Start();
textBox.Text = "开始监听";
while (true)
{
try
{
if (listener.Pending())
{
Socket s = listener.AcceptSocket();
clientsocket = s;
clientservice = new Thread(new ThreadStart(ServiceClient));
clientservice.Start();
}
else
{
Thread.Sleep(200);
}
}
catch (Exception ex)
{
textBox.Text += ex.Message;
}
}
}private void ServiceClient()
{
Socket client = clientsocket;
Byte[] bytes = new Byte[256];
list.Add(client);
string data = null;
int i = 0;
NetworkStream stream = new NetworkStream(client);
//(i = stream.Read(bytes, 0, bytes.Length)) != 0
while (true)
{
try
{
i = stream.Read(bytes, 0, bytes.Length);
if (i == 0) continue;
}
catch (Exception ex)
{
textBox.Text += "\n" + ex.Message;
}
data = System.Text.Encoding.GetEncoding("gb2312").GetString(bytes, 0, i);
if (data == "<policy-file-request/>\0" || data == "<POLICY-FILE-REQUEST/>\0")
{
if (list.Count > 0) list.RemoveAt(list.Count - 1);
string xmlS = "<cross-domain-policy>" +
"<allow-access-from domain=\"*\" to-ports=\"843-14000\" />" +
"</cross-domain-policy>\0";
byte[] msg2 = System.Text.Encoding.Default.GetBytes(xmlS);
client.Send(msg2, msg2.Length, 0);
//stream.Write(msg2, 0, msg2.Length);
//stream.Flush();
}
else
{
byte[] msg = System.Text.Encoding.GetEncoding("gb2312").GetBytes(data);
for (int j = 0; j < list.Count; j++)
{
try
{
list[j].Send(msg, msg.Length, 0);
}
catch (Exception ex)
{
list.Remove(client);
}
}
}
}
client.Close();
}
private void StartListening()
{
IPAddress ipadddress = IPAddress.Parse("192.168.0.6");
TcpListener listener = new TcpListener(ipadddress, port);
listener.Start();
textBox.Text = "开始监听";
try
{
while (true)
{
Socket s = listener.AcceptSocket();
clientsocket = s;
clientservice = new Thread(new ThreadStart(ServiceClient));
clientservice.Start();
}
}
catch (Exception ex)
{
textBox.Text += ex.Message;
}
}