public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
TextBox.CheckForIllegalCrossThreadCalls = false;
}
//负责监听端口
Socket sokWelcome = null;
//负责和客户端socket通信
Socket sokConnection = null;
//负责监听的线程
Thread threadWatchPort = null;
public void StartListening()
{
try
{
IPAddress address = IPAddress.Parse(txtIP.Text.Trim());
IPEndPoint endpoint = new IPEndPoint(address, int.Parse(txtProt.Text.Trim()));
sokWelcome = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sokWelcome.Bind(endpoint);
sokWelcome.Listen(10);
threadWatchPort = new Thread(WatchPort);
threadWatchPort.Start();
ShowMsg("开始监听....");
}
catch (Exception ex)
{
ShowErr("", ex);
}
}
public void WatchPort()
{
while (true)
{
try
{
sokConnection = sokWelcome.Accept();
ShowMsg("监听到链接啦...");
}
catch (Exception ex)
{
ShowErr("", ex);
}
}
}
public void ShowErr(string msg, Exception ex)
{
ShowMsg("---------------begin---------------------");
ShowMsg(msg + "" + ex.Message);
ShowMsg("---------------end-----------------------");
}
public void ShowMsg(string msg)
{
txtShow.AppendText(msg + "\r\n");
}
private void btnListen_Click(object sender, EventArgs e)
{
StartListening();
}
private void btnSend_Click(object sender, EventArgs e)
{
string strMsg = txtInput.Text.Trim();
byte[] byteMsg = Encoding.UTF8.GetBytes(strMsg);
sokConnection.Send(byteMsg, byteMsg.Length, SocketFlags.None);
}
}