socket同一程序中怎样才能区分不同端口的IP消息呢?

p2436045 2007-02-27 05:46:11
同一程序中怎样才能区分不同端口的IP消息呢?
...全文
185 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lailaiququ 2007-02-28
  • 打赏
  • 举报
回复
Socket183_7760 对应的端口是确定的,从连接的程序段中应该能看出来。
p2436045 2007-02-28
  • 打赏
  • 举报
回复
晕,没人指导下吗?
p2436045 2007-02-27
  • 打赏
  • 举报
回复
class TEasy : public TForm
{
__published: // IDE-managed Components
//...
private: // User declarations
void __fastcall OnRecv(TMessage &Message);
public: // User declarations
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_SOCK,TMessage,OnRecv);
END_MESSAGE_MAP(TForm);
};
void __fastcall TEasySeasky::OnRecv(TMessage &Message)
{
switch(WSAGETSELECTEVENT(Message.LParam))
{
case FD_READ:
nLen=recv(Socket183_7760,recvMsg,8192,0);
break;
case FD_CLOSE:
closesocket(Socket183_7760);
break;
}
}
OnRecv()自动接收消息,消息的内容我得到了,但是我怎么样才能知道这个消息是发给程序的哪个端口呢?
代码我也是从网上找到的,所以也不太理解
lailaiququ 2007-02-27
  • 打赏
  • 举报
回复
如果是用API函数, TCP连接在调用connect时就确定了连接的端口。 UDP则用recvfrom接收数据报,参数中返回的源地址中就有端口。
UDP控件则在回调函数的参数中返回有端口。

我也是初学者,你的那个消息我不知道。
p2436045 2007-02-27
  • 打赏
  • 举报
回复
详细点:
我的程序开了3个socket,与同一服务器的两个端口相连,但是对于接收到的消息我怎样才能区分是本机哪个端口的呢?我VCL_MESSAGE_HANDLER宏接收消息的

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧