如何把这两个函数用上?求解
程序代码:
#define WIN32_LEAN_AND_MEAN #include <WINSOCK2.H> #include <windows.h> #include <stdio.h> #include "resource.h" #define PORT 5150 #define MSGSIZE 1024 #pragma comment(lib, "ws2_32.lib") void main(); LRESULT WINAPI DialogBoxProc(HWND hDlgWnd, UINT message, WPARAM wParam, LPARAM lParam) { HWND hStaticWnd; char szCount[20]="\0"; char szTitle[255]= "\0"; static int nCount1=0, nCount2=0, nCount3=0; HWND hEditWnd1, hEditWnd2, hEditWnd3; char szEdit1[255] = "", szEdit2[255] = ""; int x; int wNotifyCode, wID; main(); switch(message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: break; case WM_SYSCOMMAND: if(wParam == SC_CLOSE) { EndDialog(hDlgWnd, 0); return TRUE; } break; default: break; } return 0; } void main() { WSADATA wsaData; SOCKET sListen; SOCKET sClient; SOCKADDR_IN local;//套接字地址 SOCKADDR_IN client; char szMessage[MSGSIZE]; int ret; int iaddrSize = sizeof(SOCKADDR_IN); /*---------------------------------------------------- 功能: 进程使用winsock库,用此函数做初始化。 参数: 0x0202;指定准备在应用程序中要使用的Winsock库的版本号。 wsaData:指向WSADATA结构的指针,得到Winsockt的实现细节。 返回值: 成功返回0,失败返非0 ----------------------------------------------------*/ WSAStartup(0x0202, &wsaData);// /*---------------------------------------------------- 功能: 创建一个socket,并将此socket与特定传输层协议绑定。 参数: af(IN):地址族定义,IP协议应该设定为AF_INET。 type(IN):要创建的socket的类型。 protocol(IN):指定传输层协议。 返回值: 成功返回0,失败返回INVALID_SOCKET。特定错误码,可以用WSAGetLastError()函数获取。 ----------------------------------------------------*/ sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); local.sin_family = AF_INET; local.sin_port = htons(PORT); local.sin_addr.s_addr = htonl(INADDR_ANY); /*---------------------------------------------------- 功能: 将socket与一个本地地址绑定(IP地址和端口号)。 参数: s(IN):socket描述符。 name(IN):本地地址。 namelen(IN):name参数的长度。 返回值: 成功返回0,失败返回SOCKET_ERROR。特定错误码,可以用WSAGetLastError()函数获取。 ----------------------------------------------------*/ bind(sListen, (struct sockaddr *)&local, sizeof(SOCKADDR_IN)); /*---------------------------------------------------- 功能: 设定一个socket到监听状态。 参数: s(IN):socket描述符。 backlog(IN):指定等待连接队列的最大长度。 返回值: 成功返回0,失败返回SOCKET_ERROR。特定错误码,可以用WSAGetLastError()函数获取 ----------------------------------------------------*/ listen(sListen, 1); /*---------------------------------------------------- 功能: 接受客户端连接,建立一个新的socket与客户端通信。 参数: s(IN):处于监听状态的socket描述符。 addr(OUT):接收客户端的地址信息,设置为NULL表示不用输出此信息。 addrlen(OUT):客户端地址信息的长度。 返回值: 成功返回一个新的socket描述符用于与客户端通信,失败返回INVALID_SOCKET。特定错误码,可以用WSAGetLastError()函数获取。 ----------------------------------------------------*/ sClient = accept(sListen, (struct sockaddr *)&client, &iaddrSize); printf("Accepted client:%s:%d\n", inet_ntoa(client.sin_addr), ntohs(client.sin_port)); while (TRUE) { /*---------------------------------------------------- 功能: 从socket接收数据。 参数: s(IN):socket描述符。 buf(OUT):接收数据缓冲区。 len(IN):接收数据缓冲区的长度。 flags(IN):接收数据的执行方式,通常设为0。 返回值: 成功返回接收到的字节数,失败返回SOCKET_ERROR。特定错误码,可以用WSAGetLastError()函数获取。 ----------------------------------------------------*/ ret = recv(sClient, szMessage, MSGSIZE, 0); szMessage[ret] = '\0'; printf("Received [%d bytes]: '%s'\n", ret, szMessage); } return 0; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DialogBoxProc); return 0; } 以上函数!我怎么样才能用在一起!就是windowsapi创建了一个窗口,然后main函数是主要运行的程序,我就不知道怎么用得上!细节我会完善,可是这大体上都搞不懂,根本无法完善!