社区
C#
帖子详情
C#通讯中,服务器端怎么样同时给每个客户端发送消息?
klzxg2008
2006-11-01 09:06:45
C#通讯中,服务器端怎么样同时给每个客户端发送消息?
...全文
319
7
打赏
收藏
C#通讯中,服务器端怎么样同时给每个客户端发送消息?
C#通讯中,服务器端怎么样同时给每个客户端发送消息?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhongwanli
2006-11-02
打赏
举报
回复
.NET Remoting 事件消息订阅可以满足楼主的需要
Knight94
2006-11-02
打赏
举报
回复
to C#通讯中,服务器端怎么样同时给每个客户端发送消息?
什么方式的通讯?
udp可以广播
tcp只能逐个发
klzxg2008
2006-11-02
打赏
举报
回复
发一些主要的代码,帮忙看一下。刚才的方法我试了,还是不行。
private void StartListening()
{
string hostname = Dns.GetHostName();
IPAddress serverIP = Dns.Resolve(hostname).AddressList[0];
int Port = 6680;
Listener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
IPEndPoint serverhost = new IPEndPoint(IPAddress.Any,Port);
Listener.Bind(serverhost);
Listener.Listen(50);
try
{
while (!ShuttingDown)
{
// allDone.Reset();
clientSocket = Listener.Accept();
sockList.Add(clientSocket);
ns = new NetworkStream(clientSocket);
receiver = new Thread(new ThreadStart(ReceiveData));
receiver.Start();
// allDone.WaitOne();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace.ToString());
}
}
public void ReceiveData()
{
try
{
while(true)
{
int recv = ns.Read(data,0,data.Length);
if(recv >0)
{
this.OnReceiveChangeHandler(data,EventArgs.Empty);
}
}
}
catch(SocketException ex)
{
MessageBox.Show("Unable to connect to server!"+"\\n"+
ex.ToString());
this.close();
}
}
public bool SendMessage(Message message)
{
try
{
string tt = message.node_name;
byte[] data = message.GetBytes();
this.size = data.Length;
ns.Write(data,0,size);
return true;
}
catch(Exception e)
{
MessageBox.Show(e.StackTrace.ToString());
this.close();
return false;
}
}
klzxg2008
2006-11-02
打赏
举报
回复
to :Knight94(愚翁)
你是说每次Accept方法返回一个Socket对象的时候,因该赋给一个局部变量么?
zhuds
2006-11-02
打赏
举报
回复
你可以把客户端保存在一个数组里,然后在一个个发送信息!
Knight94
2006-11-02
打赏
举报
回复
to 另外,当第二个客户端连接服务器时,第一个客户端便不能正常与服务器通讯,为什么呢?
这个问题,估计是全局变量和局部变量的问题,你可能在通过AcceptSocket方法获得一个局部Socket替换了类的成员,这样会造成前面Accept的Socket对象被后面Accept的替换掉,从而只能响应最后一个Socket请求。
klzxg2008
2006-11-02
打赏
举报
回复
但是要是异步通讯的代码中,服务器端怎样获得客户端的地址信息呢?
另外,当第二个客户端连接服务器时,第一个客户端便不能正常与服务器通讯,为什么呢?
C#
Socket_服务端向指定的
客户端
发送
消息
(包含服务器)
C#
Socket服务端向指定的
客户端
发送
消息
(包含服务器)
C#
socket编程游戏(1服务器,多
客户端
)
里面设定的IP地址是我这里的外网IP映射。。 请大家下载自行更改为本地 或者 自己的外网IP 测试可以更改为:127.0.0.1
C#
即时
通讯
源码
即时
通讯
源码,完成点对点、群文字聊天。使用方法和原来发布的程序一样。
C#
编写Modbus TCP
客户端
程序
用
C#
写的一个Modbus TCP
客户端
程序,配合博文 http://blog.csdn.net/thebestleo/article/details/52331976 学习
Socket聊天程序(一个服务端,多个
客户端
)
Socket聊天程序(一个服务端,多个
客户端
) 可通过设置IP地址,进行局域网聊天,互联网聊天。。详细配置可以看下我blog的文章。 blog
中
搜索:Socket聊天程序
C#
111,095
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章