标题:请教C#WinForm下的UDP代码(服务器和客户端)
只看楼主
sjbird331
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2005-8-5
 问题点数:0 回复次数:6 
请教C#WinForm下的UDP代码(服务器和客户端)
本人分别写了客户端和服务器下的代码,程序的目的是客户端和服务器可以互相发送信息。但程序编译能通过,但总是不能传送信息,希望各位高手能给出指点,谢谢!!
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
服务器端:
服务器是由两个textBox(textBox1用来指示IP地址127.0.0.1,textBox2用来指示服务器端的端口(3456)),一个listBox(listBox用来显示服务器和客户端的连接状况),两个richTextBox(richTextBox1用来显示客户端发送给服务器的信息,richTextBox2用来显示服务器发送给客户端的信息),三个button(button1用来建立连接并接收来自客户端的信息,button2用来关闭连接并停止发送,button3用来发送信息给客户端),代码如下:
private UdpClient server;
private void button1_Click(object sender, System.EventArgs e)
{ start();}
////////////
private void button2_Click(object sender, System.EventArgs e)
{ server.Close();
this.listBox1.Items.Add("The Connection canceled!");
}
////////////
private void start()
{ server=new UdpClient(3456);
IPEndPoint myhost=null;
try
{ this.listBox1.Items.Add("Waitng for a Client……");
byte[] bytes=server.Receive(ref myhost);
this.richTextBox1.Text=System.Text.Encoding.Unicode.GetString(bytes,0,bytes.Length);
this.listBox1.Items.Add("Connection Success!");
}
catch(Exception err)
{ this.listBox1.Items.Add(err.ToString()); }
}
//////////
private void button3_Click(object sender, System.EventArgs e)
{ try
{ this.listBox1.Items.Add("开始发送信息!");
byte[] bytes=Encoding.Unicode.GetBytes(this.richTextBox2.Text);
server.Send(bytes,bytes.Length,this.textBox1.Text,4500);
}
catch(Exception err)
{ MessageBox.Show(err.ToString()); }
}
////////////////////////////////////////////////////////////////////////////////////////////
客户端:
客户端是由由两个textBox(textBox1用来指示IP地址127.0.0.1,textBox2用来指示客户端的端口(4500)),一个listBox(listBox用来显示客户端的状态),两个richTextBox(richTextBox1用来显示服务器发送给客户端的信息,richTextBox2用来显示客户端发送给服务器的信息),两个button(button1用来建立与服务器连接并发送和接收信息,button2用来关闭连接并停止发送),当然在运行时得先运行客户端。代码如下:
private UdpClient client;
//////////////
private void button1_Click(object sender, System.EventArgs e)
{ client=new UdpClient(4500);
try
{ this.listBox1.Items.Add("正在向服务器发送数据……");
byte[] bytes=System.Text.Encoding.Unicode.GetBytes(this.richTextBox2.Text);
IPEndPoint host=null;
byte[] response=client.Receive(ref host);
this.richTextBox1.Text=System.Text.Encoding.Unicode.GetString(response);
}
catch(Exception err)
{ this.listBox1.Items.Add(err.ToString());}
}
////////////////
private void button2_Click(object sender, System.EventArgs e)
{ client.Close();
this.listBox1.Items.Add("The Connection canceled!");
}
搜索更多相关主题的帖子: UDP 服务器 WinForm 客户端 代码 
2007-04-02 09:01
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
得分:0 
那你提示信息是提示什么了?

决定人生~
2007-04-02 11:22
sjbird331
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2005-8-5
得分:0 

对象没有实例化

2007-04-02 12:05
sjbird331
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2005-8-5
得分:0 

请问哪位高手能帮帮忙,谢谢了

2007-04-02 12:20
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
你把你错误的地方用其它颜色标识出来嘛,别人也好看撒,要不然,谁想一句一句地看啊...时间...

飘过~~
2007-04-02 12:42
sjbird331
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2005-8-5
得分:0 

错误的语句是 服务器:private void start(){ server=new UdpClient(3456); }
客户端:private void button1_Click(object sender, System.EventArgs e)
{ client=new UdpClient(4500); }
报错是 对象没有实例化

2007-04-02 13:00
sjbird331
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2005-8-5
得分:0 

还有一个报错是套接字每次只能用一次 我很是纳闷……

2007-04-02 13:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-128563-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024754 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved