【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
- 【Linux】在服务器上实现socket传输
- socket实现多个客户端连接在一个服务器上
- linux scp 命令(在两台linux服务器上传输文件)
- 如何传输文件到Linux服务器上
- socket服务器、客户端传输
- 利用Socket在不用服务器间传输文件
- select() +socket 实现 socket服务器 -Linux
- 传输层:SOCKET编程之“简单时间服务器实现”
- 在Android上实现SSL握手,实现服务器和客户端之间Socket交互
- 在linux开发板上实现一个音频服务器
- socket实现从http服务器上下载
- 在集线器传输服务器上启用反垃圾邮件功能
- 在网络通讯中,实现把一个int类型的值从服务器传输到另外一个电脑上
- Socket传输文件示例(上)
- 在linux服务器上搭建XMPP服务器
- 在Socket做服务器,在手机上用Http访问
- 在Android上实现SSL握手(客户端需要密钥和证书),实现服务器和客户端之间Socket交互
- 主题:在Android上实现SSL握手(客户端需要密钥和证书),实现服务器和客户端之间Socket交互
- ListView的原理及性能优化
- CSS设置滚动条样式(兼容IE)
- linux 查询系统版本命令、查询端口号是否被占用命令
- 为不同类型的网站选择最佳的SSL证书(下)
- 第二周实践项目二
- 【Linux】在服务器上实现socket传输
- Java--平面图形M打印(通用版)
- 微信 "errcode": 85005, "errmsg": "appid not bind weapp hint: [tghx1a0557vr18]"
- 流运算符重载
- __sso_string与std::string的区别
- HDU 4370 0 or 1——spfa
- leetcode 108. Convert Sorted Array to Binary Search Tree
- 191. Number of 1 Bits
- golang 连接mysql 参数备忘