黑马程序员技术交流社区
标题:
(急!!!)关于Socket套接字的问题
[打印本页]
作者:
☜⑦圊⑥慾➹沼
时间:
2013-9-27 14:36
标题:
(急!!!)关于Socket套接字的问题
本帖最后由 ☜⑦圊⑥慾➹沼 于 2013-9-27 17:42 编辑
各位大侠们,我现在在写一个聊天程序,我服务端启动程序,启动监听后,客户端才能与之建立连接: 1.我现在想判断一下,服务端是否开启监听,如果开启了监听,客户端连接就能成功,否则就提示连接失败。
2.我在关闭服务端的时候,如何判断客户端是否关闭,所有客户端关闭了,我的服务端才能关闭,否则提示与某某客户端正在连接,是否强行关闭,选择强行或取消。
作者:
于振发
时间:
2013-9-27 14:42
本帖最后由 于振发 于 2013-9-27 14:44 编辑
socket 服务器端和客户端通信,面向TCP的
服务器端步骤:
1、创建用于监听的套接字(socket)
2、将套接字绑定到本地地址和端口上(bind)
3、将套接字设为监听模式(listen)
4、等待客户请求(accept),此处要不断的调用accept
5、通信(send/receive),完成后返回4
6、关闭套接字(closesocket)
客户端步骤:
1、创建套接字
2、向服务器发送连接请求(connect)
3、通信(send/recv)
4、关闭套接字
关于异常的话就加上那个try---catch
作者:
0和1,编程世界
时间:
2013-9-27 14:42
用try-catch
在异常中把异常消息打印出来即可,异常的消息就是提示
比如我先前写的主要代码
try
{
//ip地址,IPAddress.Any表示当前计算机任何可用的ip地址
IPAddress ip = IPAddress.Any;
//创建网络节点,包括ip地址和端口号
IPEndPoint point = new IPEndPoint(ip, int.Parse(this.txtPort.Text.ToString()));
//创建负责监听的Socket对象
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//监听ip地址和端口号
socket.Bind(point);
//设置监听队列的长度
socket.Listen(10);
ShowMsg("监听已启动!");//启动成功!
th = new Thread(Listen);
th.IsBackground = true;
th.Start(socket);
}
catch (Exception ex) //启动失败监听!处理异常
{
MessageBox.Show(ex.Message);
}
作者:
☜⑦圊⑥慾➹沼
时间:
2013-9-27 14:46
0和1,编程世界 发表于 2013-9-27 14:42
用try-catch
在异常中把异常消息打印出来即可,异常的消息就是提示
比如我先前写的主要代码
我是要和客户端连接的啊,求解?
作者:
☜⑦圊⑥慾➹沼
时间:
2013-9-27 17:42
谢谢了。
作者:
追影
时间:
2013-9-27 23:36
可以在关闭服务端的事件时,提示查看列表是否为空,就是是否还有客户端连接着服务器,然后判读下是否触发事件,个人想法,仅供参考
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2