MAKEWORD(2,2)使用

大凡在WIN32平台上的WINSOCK编程都要经过下列步骤:
 
        定义变量->获得WINDOCK版本->加载WINSOCK库->初始化->创建套接字->设置套接字选项->关闭套接字->卸载WINSOCK库->释放资源

        下面介绍WINSOCK C/S的建立过程:

        服务器                                                客户端
________________________________________________
  初始化WSA                                            初始化WSA
____________________________________________________
  建立一个SOCKET                                  建立一个SOCKET
_____________________________________________________
  绑定SOCKET                                          连接到服务器
_____________________________________________________
  在指定的端口监听                              发送和接受数据
_____________________________________________________
  接受一个连接                                        断开连接
______________________________________________________-
  发送和接受数据
___________________________________________________
  断开连接
__________________________________________________
   
      大家注意,在VC中进行WINSOCK编程时,需要引入如下两个库文件:WINSOCK.H(这个是WINSOCKAPI的头文件,WIN2K以上支持WINSOCK2,所以
可以用WINSOCK2.H);Ws2_32.lib(WINSOCK API连接库文件).
使用方式如下:
                            #include <winsock.h>
                    #pragma comment(lib,"ws2_32.lib")
   
    下面我们通过具体的代码演示服务器和客户端的工作流程:

首先,建立一个WSADATA结构,通常用wsaData
WSADATA wsaData;

然后,调用WSAStartup函数,这个函数是连接应用程序与winsock.dll的第一个调用.其中,第一个参数是WINSOCK版本号,第二个参数是指向
WSADATA的指针.该函数返回一个INT型值,通过检查这个值来确定初始化是否成功.调用格式如下:WSAStartup(MAKEWORD(2,2),&wsaData),其中
MAKEWORD(2,2)表示使用WINSOCK2版本.wsaData用来存储系统传回的关于WINSOCK的资料.

if(iResuit=WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
        printf("WSAStartupfailed:%d",GetLastError());    //返回值不等与0,说明初始化失败


    if ( bind( server, (SOCKADDR*) &service,sizeof(service) ) == SOCKET_ERROR ) {
        printf( "bind() failed.\n" );
        closesocket(server);
        return;
    }
    
                                                                              // 监听 socket
    if ( listen( server, 1 ) == SOCKET_ERROR )
        printf( "Error listening on socket.\n");

                                                                                // 接受连接
    SOCKET AcceptSocket;

    printf( "Waiting for a client to connect...\n" );
    while (1) {
        AcceptSocket = SOCKET_ERROR;
        while ( AcceptSocket == SOCKET_ERROR ) {
            AcceptSocket = accept( server, NULL, NULL );
        }
        printf( "Client Connected.\n");
        server = AcceptSocket;
        break;
    }
    
                                                                                     // 发送接受数据
    int bytesSent;
    int bytesRecv = SOCKET_ERROR;
    char sendbuf[32] = "Server: Sending Data.";
    char recvbuf[32] = "";
    
    bytesRecv = recv( server, recvbuf, 32, 0 );
    printf( "Bytes Recv: %ld\n", bytesRecv );
    
    bytesSent = send( server, sendbuf, strlen(sendbuf), 0 );
    printf( "Bytes Sent: %ld\n", bytesSent );

    return;

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab文字转图像分享新人例程-word2picmain.m 程序实现文字转化成图片 rgb三通道中,R通道存放文本信息,G通道产生中心涣散圆形,B通道产生全图小涣散圆形 主要应用的是unicode2native指令,非加密转换 my.jpg 生成的图片 function word2picmain() %程序实现文字转化成图片 %%////////////////////////////////////////////////////////////////////// %rgb三通道中,R通道存放文本信息,G通道产生中心涣散圆形,B通道产生全图小涣散圆形 %主要应用的是unicode2native指令,非加密转换 %%////////////////////////////////////////////////////////////////////// clc clear all a='\u4e03\u5915\u8282\u5feb\u4e50OO\u54c8\u54c8~';%你想要转换的文字 b=makepic; imshow imwrite; mb=double)/255;%生成的图像是1~255,而matlab归一化成了0~1,所以要换回来 txt=makeword end %%////////////////////////////////////////////////////////////////////// function =makepic %[cx,cy]是图片中存放文本数据长度信息位置坐标 a=txt; ca=unicode2native; b=zeros; num=size; st=0; for i=1:100     for j=1:100         sp=ceil) 1;           b=double)/255;         b=1-^2 ^2)/5000;         rcx=ceil*8-4;         rcy=ceil*8-4;         b=^2 ^2)/32);         st=st 1;     end end b=1--1)/10; b=1-mod/100; end %%////////////////////////////////////////////////////////////////////// function [txt]=makeword num=uint16)*100 )*100*10) lsb=zeros; nsp=[]; for i=1:100     for j=1:100         nsp=[nsp img*255];     end end txt=native2unicode,'UTF-16BE') end %%////////////////////////////////////////////////////////////////////// word2picmain.m

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值