tcp udp 的echo脚本
来源:互联网 发布:php开源论坛 wap 编辑:程序博客网 时间:2024/05/20 05:45
============================================================
博文原创,转载请声明出处
电子咖啡(原id蓝岩)
============================================================
在进行tcp和udp的通信测试时候,需要对应的测试脚本作支持,搜集了一些,和大家分享。echo_udp_server.py udp 服务器端的echo程序,自己发送什么消息,此程序回复同样消息。
echo_udp_client.py udp客户端echo程序。
附程序如下——————————————————
echo_tcp_server.c
echo_tcp_server.c#include<stdio.h>#include<unistd.h>#include<sys/socket.h>#include<arpa/inet.h>#defineLISTEN_PORT5000#definetrue1#definefalse0int listen_sock, comm_sock;struct sockaddr_in serv_addr, clnt_addr;int server_init();int is_accept();int handle_echo();int main(void){server_init();while(1){if(is_accept()){handle_echo();}}return 0;}int is_accept(){int clnt_addr_len = sizeof(clnt_addr);if((comm_sock = accept(listen_sock, (struct sockaddr *)&clnt_addr, &clnt_addr_len)) < 0){return false;}else{printf("Client(IP:%s) connected.\n", inet_ntoa(clnt_addr.sin_addr));return true;}}#defineBUFFER_SIZE32int handle_echo(){char buffer[BUFFER_SIZE];int recv_len;int goon = true;while(goon){if((recv_len = recv(comm_sock, buffer, BUFFER_SIZE, 0)) < 0){perror("recv() error.");exit(-1);}else if(recv_len == 0){goon = false;}else{if(send(comm_sock, buffer, recv_len, 0) != recv_len){perror("send() error.");exit(-1);}}}}int server_init(){// create listen socketif((listen_sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0){perror("listen_socket error.");exit(-1);}// init the serv_addrmemset(&serv_addr, 0, sizeof(serv_addr));serv_addr.sin_family = AF_INET;serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);serv_addr.sin_port = htons(LISTEN_PORT);// bind listen socket with server addressif(bind(listen_sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0){perror("bind() error.");exit(-1);}// listen on the port if(listen(listen_sock, 10) < 0){perror("listen() error.");exit(-1);}}echo_udp_server.py
#!/usr/bin/env python """A simple echo server (UDP)""" import socket # define servr propertieshost = ''port = 9003size = 8192 # configure server socketsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.bind((host, port)) # wait for connections# terminate with try: while True: data, address = sock.recvfrom(size) print "datagram from", address,data #print "data is ",data sock.sendto(data, address)finally: sock.close()
echo_udp_client.py
#!/usr/bin/env python """A simple echo client (UDP)""" import socket # configure the clientport = 9003host = 'localhost'size = 8192timeout = 8testMsg = "This is my //77text123" # initialize sockettry: sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(timeout) sock.sendto(testMsg, (host, port)) response = sock.recv(8192) sock.close() print response if response == testMsg: print "connection is working fine." else: print "connection error occured." except: print "cannot reach your server"
- tcp udp 的echo脚本
- echo - TCP/UDP 7
- [c++]udp的echo 程序
- 基于libuv库的tcp, udp echo服务器和客户段测试python代码。
- <网络编程培训之三> 实现TCP/UDP的简单Echo服务器
- 基于TCP的ECHO程序
- 基于UDP的ECHO控制台程序
- tcp udp 的区别
- python的TCP/UDP
- TCP&UDP的比较
- TCP/UDP的区别
- tcp/udp的区别
- TCP,UDP的区别
- TCP/UDP的区别
- TCP UDP 的区别
- TCP&UDP的区别
- tcp/udp的区别
- TCP、UDP的优缺点
- 引用
- 你不知道的事---------printf输出指定长度字符串
- Smarty核心内容:自定义函数及方法
- Smarty核心内容:Caching [缓存]
- 不规则三角网(TIN)
- tcp udp 的echo脚本
- php标准注释
- VBA中MsgBox的几个用法
- Thoughts at one day
- Android最佳实践之:StrictMode介绍
- PHP 类与对象
- css中td截断多余的文字,不显示多余的和table-layout的fixed属性
- 用jstl标签完成小九九的打印
- 为什么要指定IP地址,不能用localhost/127.0.0.1??