#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
#define UART_WIFI_IP "10.10.100.254"
#define UART_WIFI_PORT 8899
void main()
{
WORD wVersionRequested;//用来指定准备加载的winsock库的版本;
WSADATA wsaData;
int err;
char recvBuf[100] = { 0 } ;//初始化接收数组
wVersionRequested = MAKEWORD( 1, 1 );//括号里的前一位是高位字节,指定所需的winsock库的
//副版本;括号里的后一位是低位字节,指定所需的winsock库的主版本。
//(如版本2.1,则其中2为主版本号,1为副版本号);
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}//加载套接字库,加裁失败则返回;
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
}//如果不是1.1的则退出;
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);//创建套接字(socket);
//AF_INET是指定的地址族;SOCK_STREAM是指定的SOCKET类型,这里是流式套接字;0表示系统
//根据地址格式和套接字类别,自动选择一个合适的协议;
SOCKADDR_IN addrSrv;//填充数据;
addrSrv.sin_addr.S_un.S_addr=inet_addr(UART_WIFI_IP);//修改对应的IP;
addrSrv.sin_family=AF_INET;//对于IP地址,SIN-FAMILY成员将一直是AF_INET;
addrSrv.sin_port=htons(UART_WIFI_PORT);//修改对应的端口;
printf("connecting...\n");
//向服务器发出连接请求(connect)。
if( 0 != connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)) )
{
printf("connect error!\n");
goto error;
}
else
{
printf("connect sucessful\n");
}
send(sockClient,"My name is Scofield",strlen("My name is Scofield")+1,0);//向服务器发送内容
recv(sockClient,recvBuf,100,0);//从服务器接收内容
printf("%s\n",recvBuf);
error: printf("close socket\n");
closesocket(sockClient);//关闭SOCKET
WSACleanup();
}
- 1
- 2
- 3
前往页