基于流式套接字的回射客服端编程程序

基于流式套接字的回射客服端编程程序

#include <WS2tcpip.h>
#include<unistd.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <winsock2.h>
#define MAXLINE 512
#define PORT 7210   //填服务器端口号
#define IP_ADDRESS "127.0.0.1"   //填服务器ip
int client(SOCKET s)
{
	int ire;
	char sendline[MAXLINE]={"test"},recvline[MAXLINE];
	//memset(sendline,0,MAXLINE);
	memset(recvline,0,MAXLINE);
	ire = send(s, sendline, (int)strlen(sendline), 0);
		if (ire == SOCKET_ERROR)
				{
					printf("send failed:%d\n",WSAGetLastError());
					return -1;
				}
		printf("\r\n客服端发送数据:%s\r\n",sendline);
	do
	{
		memset(recvline,0,MAXLINE);
		ire = recv(s, recvline,MAXLINE, 0);
		if (ire>0)
			printf("客服端收到数据:%s \r\n",recvline);
		else
		{
			if(ire==0)
				printf("服务器终止!\n");
			else
				printf("recv failed:%d\n",WSAGetLastError());
		}
	}while (ire>0);
	return 0;
}	 
int main()
{
  int n,i;
  int iResult;
	WSADATA wsaData;
	WORD v=MAKEWORD(2,2);
	iResult=WSAStartup(v,&wsaData);
	if(iResult!=0)
	{
		printf("WSAStartup failed: %d\n",iResult);
		return -1;
	}     //套接字初始化 
	
 	int sockfd,con; 
 	struct sockaddr_in servaddr;
 	servaddr.sin_family = AF_INET;
 	servaddr.sin_addr.s_addr=inet_addr(IP_ADDRESS);
  	sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd< 0) {
      printf("socket error:%d\n",sockfd);
      return -1;
    } 
    servaddr.sin_port = htons(PORT);
	con=connect(sockfd, (struct sockaddr*)&servaddr, sizeof(sockaddr_in));  //连接服务器

  	client(sockfd);   //发送 接收数据

 	iResult=WSACleanup();
	if(iResult!=0)
	{
		printf("WSACleanup failed: %d\n",iResult);
		return -1;
	}     //套接字释放
  return 0;
}
posted @ 2019-09-20 11:13  Juicef  阅读(411)  评论(0编辑  收藏  举报