| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 280 人关注过本帖
标题:如何把这两个函数用上?求解
只看楼主 加入收藏
枉椋
Rank: 2
等 级:论坛游民
帖 子:24
专家分:24
注 册:2012-3-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
如何把这两个函数用上?求解
程序代码:
#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函数是主要运行的程序,我就不知道怎么用得上!细节我会完善,可是这大体上都搞不懂,根本无法完善!
搜索更多相关主题的帖子: 5150 color 如何 
2012-05-16 11:46
枉椋
Rank: 2
等 级:论坛游民
帖 子:24
专家分:24
注 册:2012-3-30
收藏
得分:0 
求大神啊!
2012-05-16 11:47
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:20 
把main的代码移支WinMain中

应该先把socket的知识,与Window编程的知识,单独搞懂,再放到一起。

这样容易一些

为游戏狂~~!!    大家努力编哈!
2012-05-16 12:14
枉椋
Rank: 2
等 级:论坛游民
帖 子:24
专家分:24
注 册:2012-3-30
收藏
得分:0 
还是不懂
2012-05-16 13:08
快速回复:如何把这两个函数用上?求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017610 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved