如何建立TCP通讯? 我已经可以把服务器和客户端连接在一起了,但是不知道该如何实现客户端发消息,其他客户端也可以收到这样。请问这要如何实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个tcp发送和接收的例子吧服务端:Thread myThread;private void button1_Click(object sender, EventArgs e) { myThread = new Thread(new ThreadStart(BeginListen)); myThread.Start(); } private void button2_Click(object sender, EventArgs e) { myThread.Abort(); Application.ExitThread(); } private void BeginListen() { Control.CheckForIllegalCrossThreadCalls = false; IPAddress Server_Ip = GetServer_IP(); IPEndPoint ip = new IPEndPoint(Server_Ip, System.Convert.ToInt32(textBox1.Text.ToString())); Socket Socket_IP = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Socket_IP.Bind(ip); while (true) { try { Socket_IP.Listen(5); Socket Socket_Listen = Socket_IP.Accept(); byte[] byteMsg = new byte[1024]; int msg = Socket_Listen.Receive(byteMsg); listBox1.Items.Add("Recive: " + Encoding.Default.GetString(byteMsg, 0, msg) + " " + DateTime.Now + ""); byte[] msgx = Encoding.Default.GetBytes(textBox2.Text); Socket_Listen.Send(msgx); } catch (SocketException ex) { MessageBox.Show(ex.Message); } } } private static IPAddress GetServer_IP() { IPHostEntry ipDns = Dns.GetHostByName(Dns.GetHostName()); return ipDns.AddressList[0]; } }接收端:Socket mysocket;private void button1_Click(object sender, EventArgs e) { textBox4.Text = ""; string ip_bj = Get_IP(); try { IPEndPoint hostEP = new IPEndPoint(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text)); Socket mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { mysocket.Connect(hostEP); } catch (Exception ex) { MessageBox.Show("连接错误\n\r" + ex.Message); return; } byte[] msgx = Encoding.Default.GetBytes(textBox3.Text); try { mysocket.Send(msgx); } catch { MessageBox.Show("发送错误"); } byte[] bytes = new byte[1024]; int bytesRead = mysocket.Receive(bytes); textBox4.Text = Encoding.Default.GetString(bytes, 0, bytesRead); mysocket.Shutdown(SocketShutdown.Both); mysocket.Close(); } catch (Exception ex) { //mysocket.Shutdown(SocketShutdown.Both); //mysocket.Close(); } } private string Get_IP() { IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList; return addressList[0].ToString(); } } 如何通过GV实现批量删除功能 File.Exists判断文件时,文件明明存在,就是一直输出false??为什么呢? 求{堆和栈}的区别??????????? 设置上下文菜单出现的问题?(代码如下) 操作EXCEL时出现的错误,“外部表不是预期的格式。” get 和 set 属性对的问题 特急求助:关于C#设定页脚字体和大小的问题!!!!!!!!!!!!!!!!!!!!! 跪求 实用软件 开发源码!!! 为什么有时候打开网页整个界面都乱了 关于字符串处理,急!!!! 正确读取文件 C#对SQL server数据库里取image类型怎么取???
服务端:
Thread myThread;
private void button1_Click(object sender, EventArgs e)
{
myThread = new Thread(new ThreadStart(BeginListen));
myThread.Start();
} private void button2_Click(object sender, EventArgs e)
{
myThread.Abort();
Application.ExitThread();
} private void BeginListen()
{
Control.CheckForIllegalCrossThreadCalls = false;
IPAddress Server_Ip = GetServer_IP();
IPEndPoint ip = new IPEndPoint(Server_Ip, System.Convert.ToInt32(textBox1.Text.ToString()));
Socket Socket_IP = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Socket_IP.Bind(ip);
while (true)
{
try
{
Socket_IP.Listen(5);
Socket Socket_Listen = Socket_IP.Accept();
byte[] byteMsg = new byte[1024];
int msg = Socket_Listen.Receive(byteMsg);
listBox1.Items.Add("Recive: " + Encoding.Default.GetString(byteMsg, 0, msg) + " " + DateTime.Now + "");
byte[] msgx = Encoding.Default.GetBytes(textBox2.Text);
Socket_Listen.Send(msgx);
}
catch (SocketException ex)
{
MessageBox.Show(ex.Message);
}
}
} private static IPAddress GetServer_IP()
{ IPHostEntry ipDns = Dns.GetHostByName(Dns.GetHostName());
return ipDns.AddressList[0];
}
}接收端:
Socket mysocket;
private void button1_Click(object sender, EventArgs e)
{
textBox4.Text = "";
string ip_bj = Get_IP();
try
{
IPEndPoint hostEP = new IPEndPoint(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text));
Socket mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
mysocket.Connect(hostEP);
}
catch (Exception ex)
{
MessageBox.Show("连接错误\n\r" + ex.Message);
return;
}
byte[] msgx = Encoding.Default.GetBytes(textBox3.Text);
try
{
mysocket.Send(msgx);
}
catch
{
MessageBox.Show("发送错误");
}
byte[] bytes = new byte[1024];
int bytesRead = mysocket.Receive(bytes);
textBox4.Text = Encoding.Default.GetString(bytes, 0, bytesRead);
mysocket.Shutdown(SocketShutdown.Both);
mysocket.Close();
}
catch (Exception ex)
{
//mysocket.Shutdown(SocketShutdown.Both);
//mysocket.Close();
}
} private string Get_IP()
{
IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
return addressList[0].ToString();
}
}