【Linux】在服务器上实现socket传输

来源:互联网 发布:dsp算法大全c语言版本 编辑:程序博客网 时间:2024/06/10 11:47

使用c实现,代码非常简单,只是简单的收发信息和打印

1、登录服务器。用mkdir创建一个文件夹,比如我创建的是su
这里写图片描述

2、cd进去,在这里用touch创建一个server.c文件
这里写图片描述

3、vi进去
这里写图片描述
按i开始编辑

4、复制以下代码

#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <fcntl.h>#include <sys/shm.h>#define MYPORT   20#define QUEUE   20#define BUFFER_SIZE 1024int main(){    printf("main start...");    int server_sockfd = socket(AF_INET,SOCK_STREAM, 0);    printf("touch sockaddr...\n");    struct sockaddr_in server_sockaddr;    server_sockaddr.sin_family = AF_INET;    server_sockaddr.sin_port = htons(MYPORT);    server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);    printf("line setsockopt...");    int optval=1;    if((setsockopt(server_sockfd,SOL_SOCKET,SO_REUSEADDR,&optval,sizeof(optval)))<0)    {           perror("setsockopt");        exit(1);    }    printf("bind to socket server start...\n");    if(bind(server_sockfd,(struct sockaddr *)&server_sockaddr,sizeof(server_sockaddr))==-1)    {        perror("bind");        exit(1);    }    printf("listen start...\n");    if(listen(server_sockfd,QUEUE) == -1)    {        perror("listen");        exit(1);    }    char buffer[BUFFER_SIZE],sendBuf[100];int iSend=0;    printf("touch  client_addr...\n");    struct sockaddr_in client_addr;    socklen_t length = sizeof(client_addr);    printf("accept start...\n");    int conn = accept(server_sockfd, (struct sockaddr*)&client_addr, &length);    if(conn<0)    {        perror("connect");        exit(1);    }    while(1)    {                memset(buffer,0,sizeof(buffer));                recv(conn, buffer, 200,0);                printf("buffer is:%s\n",buffer);        sprintf(sendBuf,"this is fuwuqi fasong de shuju %d",iSend);        send(conn,sendBuf,100,0);        printf("%s\n",sendBuf);        iSend++;    }    printf("close conn start...\n");    close(conn);    close(server_sockfd);    return 0;}

ps:这里可能会有排版问题,还有vi操作比较麻烦,推荐使用filezilla
文件-站点管理器

这里写图片描述

输入服务器的主机名,账号密码即可,这不是重点,略过

5、按esc退出编辑模式后,按:wq保存退出vi模式,然后编译一下
这里写图片描述

6、运行
这里写图片描述
打印提示信息如下
这里写图片描述

7、此时电脑端打开随意一个TCP助手软件
这里写图片描述
输入服务端IP和端口,点击连接(右下角打开),然后在输入框随意输入一些信息
这里写图片描述

8、点发送,即可以在服务器上看到相关的信息
这里写图片描述

9、可以看到在最后一行,是服务器发送的信息,在我们的TCP助手上可以看到
这里写图片描述

阅读全文
0 0
原创粉丝点击