Y
ydzi_
Unregistered / Unconfirmed
GUEST, unregistred user!
const m_cfg_SockPort = 5656;
var
// ----- Socket -----
m_LenOfSockAddr: integer;
m_SockAddr: TSockaddrIn; // uses winsock;
m_ServerSocket: TSocket;
sInfo: string;
begin
// 设定Socket地址
m_SockAddr.sin_addr.S_addr := htonl(INADDR_ANY);
m_SockAddr.sin_family := AF_INET;
m_SockAddr.sin_port := m_cfg_SocketPort; // 这里的端口是5656
//m_SockAddr.sin_port := htons(m_cfg_SocketPort); 如果使用这句的话,m_SockAddr.sin_Port 就是6166了 为什么啊?
m_LenOfSockAddr := SizeOf(m_SockAddr);
// 创建 Socket
m_ServerSocket := Socket(AF_INET, SOCK_STREAM, 0); showmessage(inttostr(m_serversocket));// serversocket = -1 为什么这里总也过不去啊!
if (m_ServerSocket = INVALID_SOCKET) then // 创建失败
begin
sInfo := Format('%s%d', ['Socket创建失败,程序退出,Error Code:',
WSAGetLastError()]);
Application.MessageBox('Socket创建失败,程序退出!', '错误', mb_Ok + mb_IconInformation);
PostQuitMessage(0); // 使程序停止
Result := true;
end;
// 绑定 Socket地址
if (bind(m_ServerSocket, m_SockAddr, m_LenOfSockAddr) = SOCKET_ERROR) then
begin // 绑定失败
sInfo := Format('%s%d', ['绑定Socket地址失败,程序退出,Socket Error Code:',
WSAGetLastError()]);
Application.MessageBox('绑定Socket地址失败,程序退出!', '错误', mb_Ok + mb_IconInformation);
PostQuitMessage(0); // 使程序停止
Result := true;
end;
// 开始对Bind绑定的端口进行监听
if (Listen(m_ServerSocket, 5) = SOCKET_ERROR) then
begin // 监听错误
sInfo := Format('%s%d', ['监听Socket端口失败,程序退出,Socket Error Code:',
WSAGetLastError()]);
Application.MessageBox('监听Socket端口失败,程序退出!', '错误', mb_Ok + mb_IconInformation);
PostQuitMessage(0); // 使程序停止
Result := true;
end;
请教高手了,谢谢
var
// ----- Socket -----
m_LenOfSockAddr: integer;
m_SockAddr: TSockaddrIn; // uses winsock;
m_ServerSocket: TSocket;
sInfo: string;
begin
// 设定Socket地址
m_SockAddr.sin_addr.S_addr := htonl(INADDR_ANY);
m_SockAddr.sin_family := AF_INET;
m_SockAddr.sin_port := m_cfg_SocketPort; // 这里的端口是5656
//m_SockAddr.sin_port := htons(m_cfg_SocketPort); 如果使用这句的话,m_SockAddr.sin_Port 就是6166了 为什么啊?
m_LenOfSockAddr := SizeOf(m_SockAddr);
// 创建 Socket
m_ServerSocket := Socket(AF_INET, SOCK_STREAM, 0); showmessage(inttostr(m_serversocket));// serversocket = -1 为什么这里总也过不去啊!
if (m_ServerSocket = INVALID_SOCKET) then // 创建失败
begin
sInfo := Format('%s%d', ['Socket创建失败,程序退出,Error Code:',
WSAGetLastError()]);
Application.MessageBox('Socket创建失败,程序退出!', '错误', mb_Ok + mb_IconInformation);
PostQuitMessage(0); // 使程序停止
Result := true;
end;
// 绑定 Socket地址
if (bind(m_ServerSocket, m_SockAddr, m_LenOfSockAddr) = SOCKET_ERROR) then
begin // 绑定失败
sInfo := Format('%s%d', ['绑定Socket地址失败,程序退出,Socket Error Code:',
WSAGetLastError()]);
Application.MessageBox('绑定Socket地址失败,程序退出!', '错误', mb_Ok + mb_IconInformation);
PostQuitMessage(0); // 使程序停止
Result := true;
end;
// 开始对Bind绑定的端口进行监听
if (Listen(m_ServerSocket, 5) = SOCKET_ERROR) then
begin // 监听错误
sInfo := Format('%s%d', ['监听Socket端口失败,程序退出,Socket Error Code:',
WSAGetLastError()]);
Application.MessageBox('监听Socket端口失败,程序退出!', '错误', mb_Ok + mb_IconInformation);
PostQuitMessage(0); // 使程序停止
Result := true;
end;
请教高手了,谢谢