using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;namespace server
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Socket sockets = null;
Thread thread = null; private void button1_Click(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(ThreadCallBack));
thread.Start();
} private void ThreadCallBack()
{
//int address = Convert.ToInt32(this.textBox2.Text);
int port = Convert.ToInt32(this.textBox3.Text);
sockets = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress hostIP = IPAddress.Parse(Dns.GetHostEntry(Dns.GetHostName()).AddressList[0].ToString());
IPEndPoint ep = new IPEndPoint(hostIP, port); sockets.Bind(ep);
sockets.Listen(10); textBox1.BeginInvoke(new MethodInvoker(delegate
{
textBox1.Text += "侦听启动\r\n";
})); while (thread.ThreadState != ThreadState.Aborted)//
{
Socket sReceive = sockets.Accept();
int bufLen = sReceive.ReceiveBufferSize;
if (bufLen == 0) continue;
byte[] bData = new byte[bufLen];
int DataLen = sReceive.Receive(bData);
if (DataLen == 0) continue;
//string StrData = Encoding.Default.GetString(bData, 0, DataLen);
string StrData = "";
for (int i = 0; i < DataLen; i++)
{
StrData = StrData + Convert.ToString(bData[i], 16).PadLeft(2, '0') + " ";
}
textBox1.BeginInvoke(new MethodInvoker(delegate
{
textBox1.Text += ((IPEndPoint)sReceive.RemoteEndPoint).Address.ToString() + " :" + ((IPEndPoint)sReceive.RemoteEndPoint).Port.ToString() + " " + DateTime.Now.ToString() + " || " + StrData + "\r\n";
}));
}
sockets.Close();
sockets = null;
} private void button2_Click(object sender, EventArgs e)
{
if (thread != null)
{
thread.Abort();
Thread.Sleep(30);
thread = null;
} if (sockets != null)
{
sockets.Close();
sockets = null;
} textBox1.Text += "侦听停止\r\n";
} private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
button2_Click(null, null);
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;namespace server
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Socket sockets = null;
Thread thread = null; private void button1_Click(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(ThreadCallBack));
thread.Start();
} private void ThreadCallBack()
{
//int address = Convert.ToInt32(this.textBox2.Text);
int port = Convert.ToInt32(this.textBox3.Text);
sockets = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress hostIP = IPAddress.Parse(Dns.GetHostEntry(Dns.GetHostName()).AddressList[0].ToString());
IPEndPoint ep = new IPEndPoint(hostIP, port); sockets.Bind(ep);
sockets.Listen(10); textBox1.BeginInvoke(new MethodInvoker(delegate
{
textBox1.Text += "侦听启动\r\n";
})); while (thread.ThreadState != ThreadState.Aborted)//
{
Socket sReceive = sockets.Accept();
int bufLen = sReceive.ReceiveBufferSize;
if (bufLen == 0) continue;
byte[] bData = new byte[bufLen];
int DataLen = sReceive.Receive(bData);
if (DataLen == 0) continue;
//string StrData = Encoding.Default.GetString(bData, 0, DataLen);
string StrData = "";
for (int i = 0; i < DataLen; i++)
{
StrData = StrData + Convert.ToString(bData[i], 16).PadLeft(2, '0') + " ";
}
textBox1.BeginInvoke(new MethodInvoker(delegate
{
textBox1.Text += ((IPEndPoint)sReceive.RemoteEndPoint).Address.ToString() + " :" + ((IPEndPoint)sReceive.RemoteEndPoint).Port.ToString() + " " + DateTime.Now.ToString() + " || " + StrData + "\r\n";
}));
}
sockets.Close();
sockets = null;
} private void button2_Click(object sender, EventArgs e)
{
if (thread != null)
{
thread.Abort();
Thread.Sleep(30);
thread = null;
} if (sockets != null)
{
sockets.Close();
sockets = null;
} textBox1.Text += "侦听停止\r\n";
} private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
button2_Click(null, null);
}
}
}
解决方案 »
- 安装VS2005时,出现的问题
- c# socket tcp 根据发送信息内容 判断*RS,xxxxxxxxx *TS,yyyyyyyyy 当ID条件xxxxxxxx=yyyyyyy成立
- C#里有没有REPT函数
- DataGrid写入出问题.
- 谁是高手!!!
- 请问谁有C#调用COM的小例子,请发到我的邮箱:[email protected], 在线等,急,谢谢
- datagrid中的这样一个问题如何解决,请高手指教!
- 请教C#数据库更新问题!!
- 关于datagrid中的记录选定
- C#的Socket问题
- C#WinForm怎样导出EXCEL,要求一定的格式
- 定时器中用DATASET导致程序占用的内存一直在增长
是不是你的DTU端口什么的问题