C#socket通信问题 15

服务器端代码IPEndPointipep=newIPEndPoint(IPAddress.Any,int.Parse("2098"));//创建一个套接字Socketse... 服务器端代码
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, int.Parse("2098"));
//创建一个套接字
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//绑定套接字到端口
server.Bind(ipep);
//开始侦听(并堵塞该线程)
server.Listen(1);
//确认连接
Socket client = server.Accept();
//获得[文件名]
string SendFileName = System.Text.Encoding.Unicode.GetString(EzoneModule.ReceiveVarData(client));//ReceiveVarData()是用来接收的把Receive()方法扩展了一下
MessageBox.Show("文件名" + SendFileName);
//关闭套接字
client.Close();
客户端代码
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("192.168.11.166"), 2090);
//创建套接字
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect(ipep);
CommonModule.EzoneModule.SendVarData(client, System.Text.Encoding.Unicode.GetBytes("data from client")); //SendVarData()是对send()方法扩展了
client.Close();
上面服务器和客户端代码是可以使用的。想向各位询问如何把数据从服务器端向客户端进行发送,根据代码服务器端需要监听连接请求,有连接后创建新的socket,但客户端没有这些,那如果要发送数据到客户端,客户端也需要建立监听这些吗?如果不需要那代码如何补充呢,我试了多次都没成功,请大家帮忙
展开
 我来答
zryifeng
2013-07-31
知道答主
回答量:7
采纳率:100%
帮助的人:1.1万
展开全部
TCP是面向连接的,服务端接收到连接(Socket client = server.Accept() )后,表示连接已经建立好,就可以相互通讯了。服务端用Accept到的client发送消息就行了,客户端不需要再Listen,直接Receive消息就行了(用你建立连接的Socket接收)。客户端发完消息不要关闭掉,用它来接收服务端的消息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sm_recver
2013-07-22
知道答主
回答量:10
采纳率:0%
帮助的人:3.8万
展开全部
客户端的代码是不需要发生变化的。。。。因为客户端不需要知道服务器如何实现功能,服务器在listen的时候如果来了新的客户端连接请求需要创立新的进程或者线程。。这样才可以使用新的套接字做业务逻辑,而原来的套接字还在监听新的连接请求,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式