问题在代码注释中
if (!initializeWinsockIfNecessary()) {
socketErr(env, "Failed to initialize 'winsock': ");
return -1;
}
int newSocket = socket(AF_INET, SOCK_STREAM, 0);
if (newSocket < 0) {
socketErr(env, "unable to create stream socket: ");
return newSocket;
}
const int reuseFlag = 1;
if (setsockopt(newSocket, SOL_SOCKET, SO_REUSEADDR,
(const char*)&reuseFlag, sizeof reuseFlag) < 0) {
socketErr(env, "setsockopt(SO_REUSEADDR) error: ");
_close(newSocket);
return -1;
}
struct sockaddr_in name;
name.sin_family = AF_INET;
name.sin_port = 0;//等于0是什么意思?
name.sin_addr.s_addr = 0;//等于0是什么意思?
if (bind(newSocket, (struct sockaddr*)&name, sizeof name) != 0) {
char tmpBuffer[100];
sprintf(tmpBuffer, "bind() error (port number: %d): ",
ntohs(port.num()));
socketErr(env, tmpBuffer);
_close(newSocket);
return -1;
}
if (!initializeWinsockIfNecessary()) {
socketErr(env, "Failed to initialize 'winsock': ");
return -1;
}
int newSocket = socket(AF_INET, SOCK_STREAM, 0);
if (newSocket < 0) {
socketErr(env, "unable to create stream socket: ");
return newSocket;
}
const int reuseFlag = 1;
if (setsockopt(newSocket, SOL_SOCKET, SO_REUSEADDR,
(const char*)&reuseFlag, sizeof reuseFlag) < 0) {
socketErr(env, "setsockopt(SO_REUSEADDR) error: ");
_close(newSocket);
return -1;
}
struct sockaddr_in name;
name.sin_family = AF_INET;
name.sin_port = 0;//等于0是什么意思?
name.sin_addr.s_addr = 0;//等于0是什么意思?
if (bind(newSocket, (struct sockaddr*)&name, sizeof name) != 0) {
char tmpBuffer[100];
sprintf(tmpBuffer, "bind() error (port number: %d): ",
ntohs(port.num()));
socketErr(env, tmpBuffer);
_close(newSocket);
return -1;
}
解决方案 »
- 一个MsgWaitForMultipleObjects函数的问题!解决五体投地的感谢!
- 请问怎么在VC中实现曲线操作啊?
- 急求:如何用Microsoft Visual Basic来调用Microsoft Office Visio文档
- vc用ado连接sybase,操作存储过程,出现这个错误 idispath error #3092,请问这是怎么回事,哪为能给我vc用ado连接sybase,操作存储过程
- 请问武汉的烽火集成这个公司如何啊?
- 用VC编的程序,如何在access建的数据库中新建表;复制表,并改名;为表改名?
- 如何能在运行.exe文件之后,就自动让定时器开始工作,而不需要按键之类的
- 哪位牛人给我们讲一讲UNICODE方面的知识
- help,dll中不包含MFC可以使用CString类么?
- qt 串口接收十六进制数据问题,求大神解答。不甚感激。
- 如何用vc编程实现彩色图像转换成黑白图像?
- 如何在VC里面运用命令行?
addr设为0表示没有指定要绑定的IP(网卡),由系统随机选一个?如果只有一块网卡的情况应该是没问题的。