这是一个TCP通信程序,小弟初学,是个菜鸟
求助各位帮忙修改一下程序
服务器端发送Form中N个textBox中的消息,客户端对应的N个textBox接收
代码如下:
TcpSever: public partial class Form1 : Form
{
TcpListener listener;
Socket s;
private void button1_Click(object sender, EventArgs e)//启动服务器
{
//启动监听器
listener = new TcpListener(9999);
listener.Start();
s= listener.AcceptSocket();
Thread th = new Thread(new ThreadStart (Receive));
th.IsBackground = true;
th.Start();
}
private void button2_Click_1(object sender, EventArgs e)//发送
{
byte[] br1 = new byte[1024]; byte[] br2 = new byte[1024];
byte[] br3 = new byte[1024]; byte[] br4 = new byte[1024];
byte[] br5 = new byte[1024];
br1 = new UTF8Encoding().GetBytes(textBox1.Text); s.Send(br1);
br2 = new UTF8Encoding().GetBytes(textBox2.Text); s.Send(br2);
br3 = new UTF8Encoding().GetBytes(textBox3.Text); s.Send(br3);
br4 = new UTF8Encoding().GetBytes(textBox4.Text); s.Send(br4);
br5 = new UTF8Encoding().GetBytes(textBox5.Text); s.Send(br5); }
}
TcpClient:
public partial class Form1 : Form
{
TcpClient client;
NetworkStream ns;
private void button1_Click(object sender, EventArgs e)//连接服务器
{
client = new TcpClient("127.0.0.1",9999);
ns = client.GetStream();
UTF8Encoding code = new UTF8Encoding();
byte[] br1 = new byte[1024]; byte[] br2 = new byte[1024];
byte[] br3 = new byte[1024]; byte[] br4 = new byte[1024];
byte[] br5 = new byte[1024]; ns.Read(br1, 0, br1.Length); ns.Read(br2, 0, br2.Length);
ns.Read(br3, 0, br3.Length); ns.Read(br4, 0, br4.Length);
ns.Read(br5, 0, br5.Length);
this.textBox2.Text = code.GetString(br1);
this.textBox3.Text = code.GetString(br2);
this.textBox4.Text = code.GetString(br3);
this.textBox5.Text = code.GetString(br4);
this.textBox6.Text = code.GetString(br5); }
明知程序是错的,可就是不知道该怎么改
请各位帮忙
求助各位帮忙修改一下程序
服务器端发送Form中N个textBox中的消息,客户端对应的N个textBox接收
代码如下:
TcpSever: public partial class Form1 : Form
{
TcpListener listener;
Socket s;
private void button1_Click(object sender, EventArgs e)//启动服务器
{
//启动监听器
listener = new TcpListener(9999);
listener.Start();
s= listener.AcceptSocket();
Thread th = new Thread(new ThreadStart (Receive));
th.IsBackground = true;
th.Start();
}
private void button2_Click_1(object sender, EventArgs e)//发送
{
byte[] br1 = new byte[1024]; byte[] br2 = new byte[1024];
byte[] br3 = new byte[1024]; byte[] br4 = new byte[1024];
byte[] br5 = new byte[1024];
br1 = new UTF8Encoding().GetBytes(textBox1.Text); s.Send(br1);
br2 = new UTF8Encoding().GetBytes(textBox2.Text); s.Send(br2);
br3 = new UTF8Encoding().GetBytes(textBox3.Text); s.Send(br3);
br4 = new UTF8Encoding().GetBytes(textBox4.Text); s.Send(br4);
br5 = new UTF8Encoding().GetBytes(textBox5.Text); s.Send(br5); }
}
TcpClient:
public partial class Form1 : Form
{
TcpClient client;
NetworkStream ns;
private void button1_Click(object sender, EventArgs e)//连接服务器
{
client = new TcpClient("127.0.0.1",9999);
ns = client.GetStream();
UTF8Encoding code = new UTF8Encoding();
byte[] br1 = new byte[1024]; byte[] br2 = new byte[1024];
byte[] br3 = new byte[1024]; byte[] br4 = new byte[1024];
byte[] br5 = new byte[1024]; ns.Read(br1, 0, br1.Length); ns.Read(br2, 0, br2.Length);
ns.Read(br3, 0, br3.Length); ns.Read(br4, 0, br4.Length);
ns.Read(br5, 0, br5.Length);
this.textBox2.Text = code.GetString(br1);
this.textBox3.Text = code.GetString(br2);
this.textBox4.Text = code.GetString(br3);
this.textBox5.Text = code.GetString(br4);
this.textBox6.Text = code.GetString(br5); }
明知程序是错的,可就是不知道该怎么改
请各位帮忙
public void jiangting()
{
toolStripStatusLabel1 .Text ="开始监听客户端连接....";
ippoint = new IPEndPoint(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text));
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(ippoint);
socket.Listen(50);
while (true)
{
accsoket = null;
try
{
accsoket = socket.Accept();
}
catch(Exception err)
{
break;
MessageBox.Show("没有连接"+err.Message ); }
Thread thread1 = new Thread(new ParameterizedThreadStart(recedata ));
thread1.Start();
}
}
#endregion
void recedata(object obj)//接收数据
{
user userrece = (user)obj;
Socket soc = userrece.socket;
while (true)
{
NetworkStream network =userrece .network ;
byte[] bt = new byte[1024];
try
{
network.Read(bt, 0, bt.Length);
}
catch
{
return;
}
string str=System.Text.Encoding.Default.GetString(bt);
if (str.IndexOf("Exit", 0) > -1)
{
richTextBox2.Text += soc.RemoteEndPoint .ToString ()+" 退出..\r\n";
comboBox1.Items.Remove(soc.RemoteEndPoint);
userlist.Remove(userrece); soc.Close();
}
else
{ richTextBox2.Text =richTextBox2.Text +soc.RemoteEndPoint .ToString ()+" :"+str+System .Environment .NewLine ;
}
} } #region 发送数据
void sendmessage(Socket socket)
{
try
{
byte[] bt = new byte[1024];
bt = System.Text.Encoding.Default.GetBytes(richTextBox1.Text+"\r\n");
NetworkStream network = new NetworkStream(socket );
network.Write(bt, 0, bt.Length);
network.Flush();
toolStripStatusLabel1.Text = "发送信息";
}
catch
{
toolStripStatusLabel1.Text = "连接没有建立";
MessageBox.Show("请先建立连接");
} }
#endregion