荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: lczhong (lcz), 信区: Program
标  题: 怎样建立客户CSocket
发信站: BBS 荔园晨风站 (Thu Mar 15 18:32:49 2001), 站内信件

发信人: Smile (呵呵~~我的昵称不见了), 信区: SOCKET
标  题: 怎样建立客户CSocket
发信站: 武汉白云黄鹤站 (2001年03月14日07:39:09 星期三), 站内信件

怎样建立客户CSocket
问: 我有一个客户socket想在socket中建立一个局域联接.我使用下列顺序:
CSocket* m_pSocket;
m_pSocket = new CSMSSocket(this);
m_pSocket->Create();
m_pSocket->Bind(m_intHostPort, m_strHostIPAddress);
m_pSocket->Connect(lpszAddress, nPort);
但每次Windows Socket都定向到别的端口,怎样才能定向到同一个端口(环境:95/NT VC5
.0).
答: 1).如果你想用Client Socket,你就不能在connect()之前调用bind(),因为局域端口
地址由TCP/IP设置,我们不可能知道下一次将使用那一个端口,我想我们不必这做.
2).看一下Create()的帮助,里面告诉我们必须给Create()指定一个端口值, 缺省的情况
为0,也就是由Window为我们选择一个端口,通过Create()将会自动捆绑. 3).我不认为你
应该完成所有的工作,但想总是用一个相同的端口来连接远程机器是一个不正确的想法.

问题出在端口数/地址结合必须唯一,如果你想在Create()中指一个固定的端口数,你只能
与远程机器建一个单个连接.在你所写的代码中是允许局域端口数可变化,可以打开多个
连接来取得相同的地址.在侦听(listening)Socket中有许多理由使用一个固定端口,但在
连接(connecting Socket中我想没有太多的必要.

--

    ┏━━┓┏━━┓  ☆  ┏━┓  ┏━━┓
    ┃  ━┫┃    ┃ ┏┓ ┃  ┃  ┃  ━┫
    ┣━  ┃┃┃┃┃ ┃┃ ┃  ┗┓┃  ━┫
    ┗━━┛┗┻┻┛ ┗┛ ┗━━┛┗━━┛

※ 来源:·武汉白云黄鹤站 bbs.whnet.edu.cn·[FROM: 211.69.197.130]

--
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: bbs@192.168.28.105]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店