Hello,
I am writing an application bulk of which is sending and receving UDP data. I
was evaluating which language will be a better fit for the job. I wrote
following small pieces of code in Python and C respectively:
from socket import *
import sys
if __name__ == '__main__':
s = socket(AF_INET, SOCK_DGRAM)
while True:
s.sendto("hello", (sys.argv[1], int(sys.argv[2])))
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
#define true 1
#define false 0
int main(int len, char** args){
int s = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in s_addr;
inet_pton(AF_INET, args[1], &(s_addr.sin_addr));
printf("%s:%s\n", args[1], args[2]);
in_port_t port;
sscanf(args[2], "%u", &port);
s_addr.sin_port = htons(port);
s_addr.sin_family = AF_INET;
char* msg = "hello";
int msg_len = 6;
int addr_len = sizeof(struct sockaddr);
struct sockaddr* s_g_addr = (struct sockaddr*) &s_addr;
while(true){
int success = sendto(s, msg, msg_len, 0, s_g_addr, addr_len);
}
}
Both pieces of code, take IP address and port on command line initely send UDP
messages to the target. In this experiment target is another machine of mine
and I record the data rate received at that machine. I was surpirised to see
that python code was able to achieve 4-10 times higher data rate than C. I was
expecting C code to perform the same, if not better.
Can anyone please explain why this is the case?
Thanks
Ghulam Memon
---------------------------------
Building a website is a piece of cake.
Yahoo! Small Business gives you all the tools to get online.
--
http://mail.python.org/mailman/listinfo/python-list