TCP通信

/-------------------------------工具包--------------/
#pragma once

#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<stdlib.h>
#include<netinet/in.h>

#define SERVER_IP   "127.0.0.1"
#define SERVER_PORT 9090

#define MAX_BUFFER_SIZE 255
#define LISTEN_QUEUE_SIZE 5
void Perror(char *str)
{
    perror(str);
    exit(1);
}
#include"utili.h"

int main()
{
    int sockSer = socket(AF_INET, SOCK_STREAM, 0);
    if(sockSer == -1)
        Perror("socket");
    struct sockaddr_in addrSer, addrCli;
    addrSer.sin_family = AF_INET;
    addrSer.sin_port = htons(SERVER_PORT);
    addrSer.sin_addr.s_addr = inet_addr(SERVER_IP);

    socklen_t len = sizeof(struct sockaddr);
    int res = bind(sockSer, (struct sockaddr*)&addrSer, len);
    if(res == -1)
        Perror("bind");

    res = listen(sockSer, LISTEN_QUEUE_SIZE);
    if(res == -1)
        Perror("listen");

    int sockConn;
    sockConn = accept(sockSer, (struct sockaddr*)&addrCli, &len);
    if(sockConn == -1)
    {
        printf("Server Accept Client Connect Fail.\n");
        exit(1);
    }
    else
    {
        printf("Server Accept Client Connect OK.\n");
    }

    char sendbuf[MAX_BUFFER_SIZE];
    char recvbuf[MAX_BUFFER_SIZE];
    while(1)
    {
        printf("Ser:>");
        scanf("%s",sendbuf);
        send(sockConn, sendbuf, strlen(sendbuf)+1, 0);

        recv(sockConn, recvbuf, MAX_BUFFER_SIZE, 0);
        printf("Cli:>%s\n",recvbuf);
    }

    close(sockSer);
    return 0;
}
#include"utili.h"

int main()
{
    int sockCli = socket(AF_INET, SOCK_STREAM, 0);
    if(sockCli == -1)
        Perror("socket");
    struct sockaddr_in addrSer;
    addrSer.sin_family = AF_INET;
    addrSer.sin_port = htons(SERVER_PORT);
    addrSer.sin_addr.s_addr = inet_addr(SERVER_IP);

    socklen_t len = sizeof(struct sockaddr);
    int res = connect(sockCli, (struct sockaddr*)&addrSer, len);
    if(res == -1)
    {
        printf("Client Connect Server Fail.\n");
        exit(1);
    }
    else
    {
        printf("Client Connect Server OK.\n");
    }

    char sendbuf[MAX_BUFFER_SIZE];
    char recvbuf[MAX_BUFFER_SIZE];
    while(1)
    {
        recv(sockCli, recvbuf, MAX_BUFFER_SIZE, 0);
        printf("Ser:>%s\n",recvbuf);

        printf("Cli:>");
        scanf("%s",sendbuf);
        send(sockCli, sendbuf, strlen(sendbuf)+1, 0);
    }

    close(sockCli);
    return 0;
}

 

posted @ 2017-08-14 22:03  Diligent_Murcielago  阅读(158)  评论(0编辑  收藏  举报