#1、TCP 服务器
1.创建TCP服务器
//绑定IP地址
s_c.Bind(new IPEndPoint(IPAddress.Any, Convert.ToInt32(this.textBox1.Text)));
// 允许10个连接
s_c.Listen(10);
Thread acc = new Thread(Accept);
acc.IsBackground = true;
acc.Start();
2.等待客户端连接
public void Accept()
{
//等待一个连接
Socket click = s_c.Accept();
//打印客户端IP地址 端口号
IPEndPoint port = click.RemoteEndPoint as IPEndPoint;
this.label3.Text = port.Address.ToString();
this.label5.Text = port.Port.ToString();
//接收数据线程
Thread js_data = new Thread(get_data);
js_data.IsBackground = true;
js_data.Start(click);
//发送数据线程
Thread fs_data = new Thread(send);
fs_data.IsBackground = true;
fs_data.Start(click);
Accept();
}
3.发送数据
//发送数据
public void send(Object socket_click)
{
Socket fs_data = (Socket)socket_click;
while (true)
{
if (fs == true)
{
//发送数据
fs_data.Send(Encoding.UTF8.GetBytes(this.richTextBox2.Text));
fs = false;
}
if(fs_imag==true)
{
byte[] buttfer = ReadImageFile(@"C:\Users\Administrator\Desktop\5.jpg");
fs_data.Send(buttfer);
fs_imag = false;
}
}
//send(fs_data);
}
2、TCP客户端
1.连接服务器
Socket s_s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
this.label3.Text = this.textBox2.Text;
s_s.Connect(this.textBox1.Text, Convert.ToInt32(this.textBox2.Text));
MessageBox.Show("连接" + this.textBox1.Text + ":" + this.textBox2.Text + "成功,可以发送数据了");
this.label3.Text = "连接成功";
//s_s.Send(Encoding.UTF8.GetBytes(this.richTextBox1.Text));
//MessageBox.Show("发送成功");
//发送数据线程
Thread fs_data = new Thread(fx_data);
fs_data.Start(s_s);
2.发送数据
public void fx_data(Object socket)
{
Socket s_s = (Socket)socket;
while (true)
{
if (zhi == "open")
{
s_s.Send(Encoding.UTF8.GetBytes(this.richTextBox1.Text));
MessageBox.Show("发送成功");
zhi = "quit";
}
if (zhi == "close")
{
break;
}
}
//fx_data(s_s);
}