upd通信代码-linux版本
来源:互联网 发布:内地搞笑网络剧排行榜 编辑:程序博客网 时间:2024/06/15 08:49
1.服务端代码
- #include <sys/types.h> /* See NOTES */
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <strings.h>
- #include <string.h>
- #include <errno.h>
- #define SERV_PORT 8000
- #define MAXLINE 1024
- #define SA struct sockaddr
- void dg_echo(int sockfd, SA* pcliaddr, socklen_t clilen);
- int main(int argc, char* argv[])
- {
- int sockfd, ret;
- struct sockaddr_in servaddr, cliaddr;
- sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sockfd < 0)
- {
- printf("socket error, %d:%s\n", errno, strerror(errno));
- return -1;
- }
- bzero(&servaddr, sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
- servaddr.sin_port = htons(SERV_PORT);
- ret = bind(sockfd, (SA*)&servaddr, sizeof(servaddr));
- if (ret < 0)
- {
- printf("bind error, %d:%s\n", errno, strerror(errno));
- return -1;
- }
- dg_echo(sockfd, (SA*)&cliaddr, sizeof(cliaddr));
- return 0;
- }
- void dg_echo(int sockfd, SA* pcliaddr, socklen_t clilen)
- {
- int n;
- socklen_t len;
- char mesg[MAXLINE];
- for (;;)
- {
- len = clilen;
- n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);
- sendto(sockfd, mesg, n, 0, pcliaddr, len);
- }
- }
#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <arpa/inet.h>#include <stdio.h>#include <stdlib.h>#include <strings.h>#include <string.h>#include <errno.h> #define SERV_PORT 8000#define MAXLINE 1024#define SA struct sockaddrvoid dg_echo(int sockfd, SA* pcliaddr, socklen_t clilen);int main(int argc, char* argv[]){int sockfd, ret;struct sockaddr_in servaddr, cliaddr;sockfd = socket(AF_INET, SOCK_DGRAM, 0);if (sockfd < 0){printf("socket error, %d:%s\n", errno, strerror(errno));return -1;}bzero(&servaddr, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port = htons(SERV_PORT);ret = bind(sockfd, (SA*)&servaddr, sizeof(servaddr));if (ret < 0){printf("bind error, %d:%s\n", errno, strerror(errno));return -1;}dg_echo(sockfd, (SA*)&cliaddr, sizeof(cliaddr));return 0;}void dg_echo(int sockfd, SA* pcliaddr, socklen_t clilen){int n;socklen_t len;char mesg[MAXLINE];for (;;){len = clilen;n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);sendto(sockfd, mesg, n, 0, pcliaddr, len);}}
2.客户端代码
- #include <sys/types.h> /* See NOTES */
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <strings.h>
- #include <string.h>
- #define SERV_PORT 8000
- #define MAXLINE 1024
- #define SA struct sockaddr
- void dg_echo(FILE*fp, int sockfd, const SA* pservaddr, socklen_t servlen);
- int main(int argc, char* argv[])
- {
- int sockfd;
- struct sockaddr_in servaddr;
- bzero(&servaddr, sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- servaddr.sin_port = htons(SERV_PORT);
- inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);
- sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sockfd < 0)
- {
- printf("socket error, %d:%s\n", errno, strerror(errno));
- return -1;
- }
- dg_echo(stdin, sockfd, (SA*)&servaddr, sizeof(servaddr));
- return 0;
- }
- void dg_echo(FILE* fp, int sockfd, const SA* pservaddr, socklen_t servlen)
- {
- int n;
- char sendline[MAXLINE], recvline[MAXLINE + 1];
- while(fgets(sendline, MAXLINE, fp) != NULL)
- {
- sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen);
- n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);
- recvline[n] = 0;
- fputs(recvline, stdout);
- }
- }
#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <arpa/inet.h>#include <stdio.h>#include <stdlib.h>#include <strings.h>#include <string.h> #define SERV_PORT 8000#define MAXLINE 1024#define SA struct sockaddrvoid dg_echo(FILE*fp, int sockfd, const SA* pservaddr, socklen_t servlen);int main(int argc, char* argv[]){int sockfd;struct sockaddr_in servaddr;bzero(&servaddr, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(SERV_PORT);inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);sockfd = socket(AF_INET, SOCK_DGRAM, 0);if (sockfd < 0){printf("socket error, %d:%s\n", errno, strerror(errno));return -1;}dg_echo(stdin, sockfd, (SA*)&servaddr, sizeof(servaddr));return 0;}void dg_echo(FILE* fp, int sockfd, const SA* pservaddr, socklen_t servlen){int n;char sendline[MAXLINE], recvline[MAXLINE + 1];while(fgets(sendline, MAXLINE, fp) != NULL){sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen);n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);recvline[n] = 0;fputs(recvline, stdout);}}
- upd通信代码-linux版本
- upd通信代码-linux版本
- upd通信代码-windows版
- upd通信代码-windows版
- C++ UPD 通信示例代码
- upd聊天代码
- upd
- upd
- winform下UPD通信的简单应用
- c# upd通讯超级简单版本
- 【代码练习7】UPD协议传输练习
- C# Socket 入门5 UPD 结构体 与 C++ 通信
- C# Socket 入门5 UPD 结构体 与 C++ 通信
- ubuntu10.10下的upd通信(server,client)
- C#中upd分包与发送,已经实现全部代码
- Linux进程通信共享内存通信整理版本
- Linux下netlink通信的实例代码
- linux 下UDP通信(附加测试代码)
- MongoDB核心贡献者
- 模态窗口经验积累
- jsp+servlet实现验证码功能
- AsyncSocket
- Zend Studio中Zend Debugger的安装与配置(Linux&Windows)
- upd通信代码-linux版本
- ! [rejected] master -> master (non-fast-forward)(有推荐视频)
- ARM裸机环境搭建(U-Boot命令详解)
- net-snmp移植
- XAML 图表动画
- 为什么linux下要configure然后make make install?
- WinFom 通过PrintDocument打印 不显示打印进度提示方法
- VS假死解决方案
- 关于Undefined symbols for architecture armv7s