sockaddr_in local
sockaddr_in remote
long retVal
//gSocketInfo全局变量初始化
gSocketInfo.g_socket_handle = INVALID_SOCKET
gSocketInfo.g_clientnum = 0
gSocketInfo.g_bind_err = SOCKET_ERROR
//创建socket,侦听xxxx端口
gSocketInfo.g_socket_handle = socket(2 ,1 ,0) // (AF_INET,SOCKSTREAM,0)
if INVALID_SOCKET <> gSocketInfo.g_socket_handle then
//打印创建的socket句柄,调试用
MessageBox("INFORM","socket handle gSocketInfo.g_socket_handle!")
//绑定侦听
local.sin_family = 2 //AF_INET
local.sin_port = LOCAL_PORT
local.sin_addr = inet_addr("192.168.1.2")
gSocketInfo.g_bind_err = bind(gSocketInfo.g_socket_handle,local,12)
if SOCKET_ERROR <> gSocketInfo.g_bind_err then
retVal = listen(gSocketInfo.g_socket_handle,1)
if SOCKET_ERROR <> retVal then
retVal = accept(gSocketInfo.g_socket_handle,remote,12)//该行报c0082错误 else
MessageBox("ERROR","socket accept failed!")
end if
else
MessageBox("ERROR","socket bind failed!")
end if
else //socket创建失败
//其他清理工作
//因为依靠socket通讯,失败后运行无意义
//因为下面关闭整个应用,所以在此要先清楚dll的调用
WSACleanup()
//关闭整个应用
halt close
end if
报错内容如下:
Error C0082: Reference argument must be a non-constant and non-readonly variable reference.
------解决方案--------------------
retVal = accept(gSocketInfo.g_socket_handle,remote,12)//该行报c0082错误
参数里不能有常量,你把12换成变量
如
int li_t=12
retVal = accept(gSocketInfo.g_socket_handle,remote,li_t)//