网络编程sever-client

 // hello sever win.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include "stdio.h"
#include"stdlib.h"
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")

void Errorhandling(char* messege);

void Errorhandling(char* message)
{
	fputs(message,stderr);
	fputc('\n',stderr);
	exit(1);
}

int main(int argc,char* argv[])
{   

	WSADATA wsaData;
	SOCKET hServSock,hClntSock;
	SOCKADDR_IN servAddr,clntAddr;
	int szClntAddr;
	char message[]="Hello world! ";
	if (argc!=2)
	{
		printf( "Usage:%s<port>\n",argv[0]);
		exit(1);
	}
	if (WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
		Errorhandling("WSAStartup() error!");
	hServSock=socket(PF_INET,SOCK_STREAM,0);
	if (hServSock==INVALID_SOCKET)
		Errorhandling("socket() error");

	memset(&servAddr,0,sizeof(servAddr));
	servAddr.sin_family=AF_INET;
	servAddr.sin_addr.s_addr=htonl(INADDR_ANY);
	servAddr.sin_port=htons(atoi(argv[1]));
	if (bind(hServSock,(SOCKADDR*)&servAddr,sizeof(servAddr))==SOCKET_ERROR)
		Errorhandling("bind() error");

	if (listen(hServSock,5)==SOCKET_ERROR)
		Errorhandling("listen() error");

	szClntAddr=sizeof(clntAddr);
	hClntSock=accept(hServSock,(SOCKADDR*)&clntAddr,&szClntAddr);

	if (hClntSock==INVALID_SOCKET)
		Errorhandling("accept() error");

	send(hClntSock,message,sizeof(message),0);
	closesocket(hClntSock);
	closesocket(hServSock);
	WSACleanup();
	system("pause");
	return 0;
}



 // hello_client_win.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include"stdio.h"
#include "stdlib.h"
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib")
void ErrorHandling(char* message);

 
 
int main(int argc, _TCHAR* argv[])
{  
	WSADATA wsaData;
	SOCKET hSocket;
	SOCKADDR_IN servAddr;

	char message[30];
	int strlen;
	if (argc!=3)
	{
		printf("Usage: %s <IP> <port>\n",argv[0]);
		exit(1);
	}
	 
	 if (WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
	 ErrorHandling("WSAStarup() error!");

	hSocket=socket(PF_INET,SOCK_STREAM,0);
	if(hSocket==INVALID_SOCKET)
		ErrorHandling("socket() error");


	memset(&servAddr,0,sizeof(servAddr));
    servAddr.sin_family=AF_INET;
	servAddr.sin_addr.s_addr=inet_addr(argv[1]);
	servAddr.sin_port=htons(atoi(argv[2]));

	if (connect(hSocket,(SOCKADDR*)&servAddr,sizeof(servAddr))==SOCKET_ERROR)
	ErrorHandling("connet() error");

	strlen=recv(hSocket,message,sizeof(message)-1,0);
	if(strlen==-1)
		ErrorHandling("read() error!");
	printf("Message from server: %s \n",message);
	 

	closesocket(hSocket);
	WSACleanup();
    system("pause");
	
	return 0;
}

void ErrorHandling(char* message)
{
	fputs(message,stderr);
	fputc('\n',stderr);
	exit(1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值