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

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

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

#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;
}
01-22 09:16