============================================================
博文原创,转载请声明出处
============================================================
在进行tcp和udp的通信测试时候,需要对应的测试脚本作支持,搜集了一些,和大家分享。
echo_tcp_server.h, tcp的echo程序,建立tcp连接后,自己发送什么消息,此程序回复同样消息。gcc编译后即可使用
echo_udp_server.pyudp 服务器端的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>
#define LISTEN_PORT 5000
#define true 1
#define false 0
int 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;
}
}
#define BUFFER_SIZE 32
int 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 socket
if((listen_sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0){
perror("listen_socket error.");
exit(-1);
}
// init the serv_addr
memset(&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 address
if(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 properties
host = ''
port = 9003
size = 8192
# configure server socket
sock = 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 client
port = 9003
host = 'localhost'
size = 8192
timeout = 8
testMsg = "This is my //77text123"
# initialize socket
try:
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"
分享到:
相关推荐
MultiServer测试任务具有多功能TCP / UDP服务器的测试解决方案,包括回声,时间和白天服务功能。生成并运行应用程序为了构建和运行应用程序,正在使用Maven工具。 为了使整个过程更加方便,已创建了run.sh脚本。 它...
增加可靠 UDP 示例 TestEcho-ARQ 和性能测试示例 TestEcho-ARQ-PFM 可靠 UDP 组件详细说明请参考开发文档 《HP-Socket Development Guide》 优化 IUdpServer 组件,修复潜在缺陷 C# SDK 增加 UDP 组件封装类 二、...
增加可靠 UDP 示例 TestEcho-ARQ 和性能测试示例 TestEcho-ARQ-PFM 可靠 UDP 组件详细说明请参考开发文档 《HP-Socket Development Guide》 优化 IUdpServer 组件,修复潜在缺陷 C# SDK 增加 UDP 组件封装类 二、...
增加可靠 UDP 示例 TestEcho-ARQ 和性能测试示例 TestEcho-ARQ-PFM 可靠 UDP 组件详细说明请参考开发文档 《HP-Socket Development Guide》 优化 IUdpServer 组件,修复潜在缺陷 C# SDK 增加 UDP 组件封装类 二、...
9.3 将原生UDP Client方法加入Echo Client Activity中 225 9.4 实现原生UDP Client 226 9.5 运行UDP Sockets示例 228 9.5.1 连通UDP的模拟器 228 9.5.2 启动Echo UDP Client 229 9.6 小结 229 第10章 POSIX ...
一、常用端口及其分类 电脑在Internet上相互通信需要使用TCP/IP协议,根据TCP/IP协议规定,电脑有256×256(65536)个端口,这些端口可分为TCP端口和UDP端口两种。如果按照端口号划分,它们又可以分为以下两大类: ...
10.1.6 echo——回显 442 10.1.7 rem——注释 443 10.1.8 pause——暂停 443 10.1.9 start——运行 444 10.1.10 choice命令 445 10.1.11 shift——更改参数的位置 447 10.2 系统配置文件 448 10.2.1 buffers——磁盘...
(1)linux的ntpdate,tcp,udp,http等校正都有可能被拒绝,或者由于各种版本配置的复杂性,导致都不能同步时间,但有些虚拟机或者物理机linux确实时钟走慢了,如何校正?写定时shell将时间差定时补回来是个通用...
42. wscript--------windows脚本宿主设置 43. write----------写字板 45. wiaacmgr-------扫描仪和照相机向导 46. winchat--------XP自带局域网聊天 49. mplayer2-------简易widnows media player 50. mspaint-...
10.1.6 echo——回显 442 10.1.7 rem——注释 443 10.1.8 pause——暂停 443 10.1.9 start——运行 444 10.1.10 choice命令 445 10.1.11 shift——更改参数的位置 447 10.2 系统配置文件 448 10.2.1 buffers——...
10.1.6 echo——回显 442 10.1.7 rem——注释 443 10.1.8 pause——暂停 443 10.1.9 start——运行 444 10.1.10 choice命令 445 10.1.11 shift——更改参数的位置 447 10.2 系统配置文件 448 10.2.1 buffers——磁盘...
10.1.6 echo——回显 442 10.1.7 rem——注释 443 10.1.8 pause——暂停 443 10.1.9 start——运行 444 10.1.10 choice命令 445 10.1.11 shift——更改参数的位置 447 10.2 系统配置文件 448 10.2.1 buffers——磁盘...
10.1.6 echo——回显 442 10.1.7 rem——注释 443 10.1.8 pause——暂停 443 10.1.9 start——运行 444 10.1.10 choice命令 445 10.1.11 shift——更改参数的位置 447 10.2 系统配置文件 448 10.2.1 buffers——磁盘...
tcp扫描 C:\nc>nc -v -z -w2 192.168.0.80 1-140 net [192.168.0.80] 140 (?) net [192.168.0.80] 139 (netbios-ssn) open net [192.168.0.80] 138 (?) net [192.168.0.80] 137 (netbios-ns) ...
文件为doc版,可自行转成txt,在手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! ...入门学习Linux常用必会60个命令实例详解 ...Linux提供了大量的命令,利用它...