这两天在看一个VC的聊天软件,有点不明白请大家帮下忙!下面这句是在客户端的OnReceive()里面的前面部分代码:
SOCKADDR_IN addr;
int len = sizeof(addr);
char* pBuf = new char[0x1000]; if (ReceiveFrom((void*)pBuf, 0x1000, (SOCKADDR*)&addr, &len, 0) < sizeof(WORD)) {
TRACE0("faile to receive message\n.");
return;
} WORD type = *(WORD*)pBuf;
if (type != PACKAGE_MESSAGE) {
return;
}
 addr.sin_port = htons((ntohs(addr.sin_port) - 1) >> 1); //将端口号改为和服务器连接的端口号
为什么要-1,后又右移1位?是什么意思?怎么就实现了将端口号改为和服务器连接的端口号