client.c

来自「简单的udp发送程序」· C语言 代码 · 共 76 行

C
76
字号
//客户端的应用程序
//

#include <winsock2.h>
#include <stdio.h>
#define DATA "2ello,world!"

void main(argc,argv)
int argc;
char *argv[];
{
	int sockid; //socket号
	struct sockaddr_in server_addr; //服务器的地址结构
    
	//////////以下代码是对socket版本号的处理////////////
    //进行协商
	WORD wVersionRequested;
	WSADATA wsaData;
	//使要求的版本为1.1
	int err;
	wVersionRequested=MAKEWORD(1,1);
	err=WSAStartup(wVersionRequested, &wsaData);
	if (err!=0)
	{
		//用户没有找到一个可以使用的DLL,返回
		perror("there is no DLL to use");
		return;
	}

	//确保Windows Sockets DLL支持1.1。
	if ( (LOBYTE(wsaData.wVersion)!=1) || (HIBYTE(wsaData.wVersion)!=1) )
	{
		perror("there is not right DLL");
		WSACleanup();
		return;
	}
	///////////socket版本号处理完毕////////////
	
	//建立Socket
	sockid=socket(AF_INET,SOCK_STREAM,0);
    if (sockid<0)
	{
		perror("there is error in opening stream socket,fuck you");
	    return;
	}
   	
	//得到命令行中指定的名字连接socket
	server_addr.sin_family=AF_INET;
	server_addr.sin_addr.s_addr = inet_addr("192.168.17.17");
	server_addr.sin_port=htons(5050);;
	
	//进行连接
	if(connect(sockid,(struct sockaddr*)&server_addr,sizeof(server_addr))<0)
	{
		//Sleep(5000);
		perror("there is error in connecting stream socket");
		return;
	}

	//进行发送数据
	if ((send(sockid,DATA,sizeof(DATA),0))<0)
	{
		perror("there is error in sending the data");
        return;
	}
    else
	{
		printf("Sending successfully.");
	}
    
	//关闭socket
	closesocket(sockid);
	WSACleanup();
    return;
		
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?