这个例子有Click端和Server端。
客户端:
private void Send()
{
string ip = "127.0.0.1";
string port = "8001";
IPAddress serverIp = IPAddress.Parse(ip);
int serverPort = Convert.ToInt32(port);
IPEndPoint iep = new IPEndPoint(serverIp, serverPort);
byte[] byteMessage;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.SendTimeout = 5000;
socket.Connect(iep);
byteMessage = Encoding.ASCII.GetBytes("hello,server");
socket.Send(byteMessage);
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
-------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------
服务器端:
1.
void liscen()
{//监听函数
IPAddress ServerIp = IPAddress.Parse("127.0.0.1");
byte[] byteMessage = new byte[100];
IPEndPoint iep = new IPEndPoint(ServerIp, 8001);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(iep);
socket.Listen(100);
Socket newsocket;
while (true)
{
newsocket = socket.Accept();
newsocket.Receive(byteMessage);
string aa = Encoding.UTF8.GetString(byteMessage);
MessageBox.Show(aa);
}
}
2.监听函数要单独开辟线程,已便于实时监听
private void button1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(liscen));
thread.Start();
}
注意:利用Socket通信,容易出现“目标主机积极拒绝”等错误信息,要关闭防火墙和一些杀毒软件。