客户端:
private void Form1_Load(object sender, EventArgs e)
{
//得到本机地址
IPHostEntry ieh = Dns.GetHostEntry(Dns.GetHostName());
txtIP.Text = ieh.AddressList[0].ToString();
}
private void btn_Send_Click(object sender, EventArgs e)
{
BeginSend();
}
//发送信息
private void BeginSend()
{
string ip = txtIP.Text;
string port = txtPort.Text;
string msg = txtMsg.Text.Trim();
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress serverIp = IPAddress.Parse(ip);
int serverPort = Convert.ToInt32(port);
IPEndPoint iep = new IPEndPoint(serverIp, serverPort);
socket.Connect(iep);
byte[] byteMessage;
byteMessage = Encoding.ASCII.GetBytes(msg);
socket.Send(byteMessage);
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
服务端:
private void btn_Listen_Click(object sender, EventArgs e)
{
try
{
mythread = new Thread(new ThreadStart(BeginListen));
mythread.Start();
}
catch (System.Exception er)
{
MessageBox.Show(er.Message, "完成", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
//获取本机IP地址
public static IPAddress GetServerIP()
{
IPHostEntry ieh = Dns.GetHostEntry(Dns.GetHostName());
return ieh.AddressList[0];
}
//监听
private void BeginListen()
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ServerIp = GetServerIP();
IPEndPoint iep = new IPEndPoint(ServerIp, port);
socket.Bind(iep);
toolStripStatusLabel1.Text = iep.ToString() + "正在监听...";
byte[] byteMessage = new byte[100];
while (true)
{
try
{
socket.Listen(5);
Socket newSocket = socket.Accept();
newSocket.Receive(byteMessage);
string sTime = DateTime.Now.ToShortTimeString();
string msg = sTime + "-" + "信息来自:";
msg += newSocket.RemoteEndPoint.ToString() +" "+ Encoding.Default.GetString(byteMessage).Trim(new char[] {'\0'});
richTextBox1.AppendText(msg + "\r\n");
}
catch (SocketException ex)
{
toolStripStatusLabel1.Text += ex.ToString();
}
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。