码迷,mamicode.com
首页 > 其他好文 > 详细

[国嵌攻略][091][TCP网络程序设计]

时间:2016-03-01 21:05:31      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

server.c

#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <stdio.h>

#define SERVER_PORT 3333

void main(){
     //创建标识
    int serverfd;
    
    serverfd = socket(AF_INET, SOCK_STREAM, 0);   //建立TCP连接
    
    //绑定地址
    struct sockaddr_in serverAddr;
    
    serverAddr.sin_family = AF_INET;                   //设置协议
    serverAddr.sin_port = htons(SERVER_PORT);          //设置端口
    serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);    //设置地址
    bzero(serverAddr.sin_zero, 8);                     //设置为零
    
    bind(serverfd, (struct sockaddr *)&serverAddr, sizeof(struct sockaddr));
    
    //监听端口
    listen(serverfd, 1);
    
    //等待连接
    socklen_t clientAddrLen;
    struct sockaddr_in clientAddr;
    int clientfd;

    clientAddrLen = sizeof(struct sockaddr);
    clientfd = accept(serverfd, (struct sockaddr *)&clientAddr, &clientAddrLen);
    
    //接收数据
    char buffer[2048];
    
    recv(clientfd, buffer, sizeof(buffer), 0);
    
    //显示数据
    char *clientIPAddr;
    
    clientIPAddr = (char *)inet_ntoa(clientAddr.sin_addr.s_addr);
    printf("server recvice from %s:\n%s", clientIPAddr, buffer);

    //关闭连接
    close(clientfd);
    close(serverfd);
}

 

client.c

#include <sys/socket.h>
#include <netinet/in.h>
#include <strings.h>
#include <stdio.h>

#define SERVER_PORT 3333

int main(int argc, char **argv){
    //参数检查
    if(argc != 2){
        printf("Usage:\n\t./client <ip address>\n");
        return -1;
    }
    
    //创建标识
    int clientfd;
    
    clientfd = socket(AF_INET, SOCK_STREAM, 0);   //建立TCP连接
    
    //建立连接
    struct sockaddr_in serverAddr;
    
    serverAddr.sin_family = AF_INET;                   //设置协议
    serverAddr.sin_port = htons(SERVER_PORT);          //设置端口
    serverAddr.sin_addr.s_addr = inet_addr(argv[1]);   //设置地址
    bzero(serverAddr.sin_zero, 8);                     //设置为零
    
    connect(clientfd, (struct sockaddr *)&serverAddr, sizeof(struct sockaddr));

    //输入数据
    char buffer[2048];
    
    printf("client send to %s:\n", argv[1]);
    fgets(buffer, sizeof(buffer), stdin);
    
    //发送数据
    send(clientfd, buffer, sizeof(buffer), 0);
    
    //关闭连接
    close(clientfd);
    
    return 0;
}

 

[国嵌攻略][091][TCP网络程序设计]

标签:

原文地址:http://www.cnblogs.com/d442130165/p/5232346.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!