前言
服务器端:
(1)创建套接字。
(2)绑定套接字到本地的地址和端口上。
(3)设置套接字为监听状态。
(4)接受请求连接的请求。
(5)进行通信。
(6)通信完毕,释放套接字资源。
客户端:
(1)创建套接字。
(2)发出连接请求。
(3)请求连接后进行通信操作。
(4)释放套接字资源。
一、服务器端代码
#include<stdio.h>
#include<winsock.h> /*引入winsock头文件*/
int main()
{
/*-----------------------------------------*/
/*------------定义变量---------------------*/
/*-----------------------------------------*/
char Sendbuf[100]; /*发送数据的缓冲区*/
char Receivebuf[100]; /*接受数据的缓冲区*/
int SendLen; /*发送数据的长度*/
int ReceiveLen; /*接收数据的长度*/
int Length; /*表示SOCKADDR的大小*/
SOCKET socket_server; /*定义服务器套接字*/
SOCKET socket_receive; /*定义用于连接套接字*/
SOCKADDR_IN Server_add; /*服务器地址信息结构*/
SOCKADDR_IN Client_add; /*客户端地址信息结构*/
WORD wVersionRequested; /*字(word):unsigned short*/
WSADATA wsaData; /*库版本信息结构*/
int error; /*表示错误*/
/*-----------------------------------------*/
/*------------初始化套接字库---------------*/
/*-----------------------------------------*/
/*定义版本类型。将两个字节组合成一个字,前面是第字节,后面是高字节*/
wVersionRequested = MAKEWORD( 2, 2 );
/*加载套接字库,初始化Ws2_32.dll动态链接库*/
error = WSAStartup( wVersionRequested, &wsaData);
if(error!=0)
{
printf("加载套接字失败!");
return 0; /*程序结束*/
}
/*判断请求加载的版本号是否符合要求*/
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( ); /*不符合,关闭套接字库*/
return 0; /*程序结束*/
}