Networking :: Send / Receive Multiple Raw Packets In One System Call
Aug 27, 2010
I need to receive a number of raw ethernet packets (say, 100 packets) into a user-mode accessible buffer large enough to hold all the packets. The way I have done this so far is by looping over the recvfrom() system call 100 times, passing an incremented pointer addressing the location in my buffer to store the packet. Is there a way to receive the 100 packets into my buffer with one system call, perhaps by instructing the kernel to DMA the 100 packets into my buffer?
View 1 Replies
ADVERTISEMENT
Mar 11, 2011
How can I send and receive packets using libpcap, reply as early as possible.
View 1 Replies
View Related
Jun 14, 2011
I want to configure a single mail server to send and receive mail from multiple sub domains of my domain. I've already installed Postfix/Dovecot and it is perfectly working for mydomain.com. And also installed roundcube for Web Mail. Can I further customize this setup to process mail to sub domains? ex- someone@subdomain1.mydomain.com, someone@subdomain2.mydomain.com, someone2@subdomain1.mydomain.com (someone@subdomain1.mydomain.com and someone@subdomain2.mydomain.com are 2 separate users. they should be able to log on to web interface separately)
Currently i use system account names as email user names. (ex - systemusername@mydomain.com). The only MX record in my domain DNS pointed to current server (mailhost.mydomain.com). I read about postfix virtual domains. but couldnt figure out how to use it to achive my target. I do not need configuration details. Just explain me the way to do it. I can do the rest my self.
View 1 Replies
View Related
Dec 10, 2008
I've got an application that compiles in Windows and Linux and is using UDP multicast to communicate. I'm running it on a Windows machine, a Linux machine and a small board (Gumstix) that is running Linux as well. The Windows and Linux machines have no problems sending/receiving packets with each other. The Gumstix and Linux machines have no problems sending/receiving packets with each other. The Gumstix can also send/receive packets with two instances of the application both running on the Gumstix.
But when running on the Gumstix I can send udp multicast packets to Windows, but cannot receive them. (It works if I do point to point with a known IP port#, but not multicast.) I can run tcpdump on the Gumstix and see the packets, but they are not being received on my socket. Here's what tcpdump (running on the Gumstix) outputs when sending the same packet from different sources. Notice the IP header ID and flags (don't fragment) are different when coming from Windows.
WINDOWS to Gumstix
-7:-45:-2.015784 IP (tos 0x0, ttl 15, id 35331, offset 0, flags [none], proto: UDP (17), length: 444) 172.30.42.3.1165 > 239.255.183.180.47028: UDP, length 416
LINUX to GUMSTIX
-7:-43:-38.451991 IP (tos 0x0, ttl 15, id 0, offset 0, flags [DF], proto: UDP (17), length: 444) 172.30.42.13.32771 > 239.255.183.180.47028: UDP, length 416
GUMSTIX to GUMSTIX
-7:-33:-10.955608 IP (tos 0x0, ttl 15, id 0, offset 0, flags [DF], proto: UDP (17), length: 444) 172.30.42.110.1025 > 239.255.183.180.47028: UDP, length 416
I've tried everything I can think of to get this to work but am not getting anywhere. Also I'm pretty inexperienced when it comes to Linux. Anything I could try to be able to receive udp multicast packets from Windows?
View 1 Replies
View Related
Mar 5, 2010
Assume this: Machine A sends a packet to machine B, no application in machine B is waiting for the packet, Now: What happens in kernel? What happens to this packet exactly?
View 6 Replies
View Related
Feb 24, 2011
I am working on uClinux/almost same as Linux. I am new to socket programming. I have two micro controllers running on same code. Simple run with arguments mean send merged string.
run 1st micro controller (Send): ./Name "anystring"
run 2st micro controller (Recive):/Name
My code is:
int receive() {
// Create socket
int sock_fd;
struct sockaddr_in addr;
char buffer[kBufferSize];
int bytes_received=0;
int addr_len = sizeof(addr);
printf("receive start ");
sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
if ( sock_fd == -1 ) {
printf("receive Create ");
// Error occurred return 0; }
printf("Res Create sucee ");
// Create address from which we want to receive, and bind it
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_port = htons(kPortNumber);
if ( bind(sock_fd, (struct sockaddr*)&addr, sizeof(addr)) < 0 ) {
printf("receive bind "); // Error occurred return 0; }
printf("Bind Succeful sucee ");
while ( 1 ) {
// Receive a message, waiting if there's nothing there yet
bytes_received = recvfrom(sock_fd, buffer, kBufferSize-0, 0,
(struct sockaddr*)&addr, &addr_len);
if ( bytes_received < 0 ) { // Error occurred
printf("receive bytes "); return 0; }
printf(" bytes_received succeful ");
printf("Ressocketstring : %s ",buffer);
memset(Ressocketstring,0x00 , sizeof(Ressocketstring));
strcpy(buffer,Ressocketstring); printf("Ressocketstring : %s
",Ressocketstring); printf(" ");
printf("Hello Receive finished");
// Now we have bytes_received bytes of data in buffer. Print it!
fwrite(buffer, sizeof(char), bytes_received, stdout); } }
int transmit(char * data, int length) {
int sock_fds[kMaxSockets];
// Obtain list of all network interfaces
/* struct ifaddrs *addrs;
if ( getifaddrs(&addrs) < 0 ) {
// Error occurred return 0; } */
// Loop through interfaces, selecting those AF_INET devices that support broadcast, but aren't loopback or point-to-point
struct sockaddr_in addr; int number_sockets = 0; struct hostent *he;
/* const struct ifaddrs *cursor = addrs;
while ( cursor != NULL && number_sockets < kMaxSockets ) {
if ( cursor->ifa_addr->sa_family == AF_INET
&& !(cursor->ifa_flags & IFF_LOOPBACK)
&& !(cursor->ifa_flags & IFF_POINTOPOINT)
&& (cursor->ifa_flags & IFF_BROADCAST) ) {
// Create socket*/
sock_fds[number_sockets] = socket(AF_INET, SOCK_DGRAM, 0);
if ( sock_fds[number_sockets] == -1 ) // Error occurred {
printf("Error Create "); return 0; }
he = gethostbyname((char *)BCASTADDRESS) ;
if (he==NULL ) {printf("Error gethostbyname ");
herror("gethostbyname"); printf("Error host "); exit(1);
} printf("Res He ");
// Create address from which we want to send, and bind it
memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET;
addr.sin_addr = *((struct in_addr *)he->h_addr);//((struct sockaddr_in *)cursor->ifa_addr)->sin_addr; addr.sin_port = htons(kPortNumber);
if ( bind(sock_fds[number_sockets], (struct sockaddr*)&addr, sizeof(addr)) < 0 )
{ // Error occurred printf("Error bind "); return 0; }
// Enable broadcast int flag = 1;
if ( setsockopt(sock_fds[number_sockets], SOL_SOCKET, SO_BROADCAST, &flag, sizeof(flag)) != 0 ) // Err occur { printf("Error Enable "); return 0; }
number_sockets =1; printf("Succes 1 "); printf("transmit Create ");
// Initialise broadcast address memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_BROADCAST;
addr.sin_port = htons(kPortNumber);
// Send through each interface int i;
for ( i=0; i<number_sockets; i++ ) {
if ( sendto(sock_fds[i], data, length, 0, (struct sockaddr*)&addr, sizeof(addr)) < 0 )
{ printf("Error Send "); // Error occurred return 0;
} printf("Succes 2 "); } return 1; } void MergeMessage( ) {
memset(socketstring,0x00,sizeof(socketstring));
sprintf(socketstring,"%s@%s@%s@%s@%s@%s@%s@%s@%s@%s@%s
",Tmeg.s1,Tmeg.s2,Tmeg.s3,Tmeg.s4,Tmeg.s5,Tm eg.s6,Tmeg.s7,Tmeg.s8,Tmeg.s9,Tmeg.s10,Tmeg.s11);
printf(" MergeSocketMessage : %s ",socketstring); }
int main (int argc, char** argv) {
int fd=0,bdc=0; struct ifreq ifr; printf("Tsarting man ");
fd = socket(AF_INET, SOCK_DGRAM, 0);
strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1);
ioctl(fd, SIOCGIFADDR, &ifr); close(fd);
memset(MYIP,'-',sizeof(MYIP));
memset(BCASTADDRESS,'-',sizeof(BCASTADDRESS));
strcpy(MYIP, inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
printf("Etho: %s ,len:%d ", MYIP,strlen(MYIP));
for(bdc=strlen(MYIP);MYIP[bdc-1]!='.';bdc--) {}
strncpy(BCASTADDRESS,MYIP,bdc-1); strcat(BCASTADDRESS,".255");
printf("BCASTADDRESS: %s ,len:%d
", BCASTADDRESS,strlen(BCASTADDRESS));
printf("Initial Broad Cast message "); {
/*s0"0" (id=76)
s1"500" (id=77)s2"100" (id=78)s3"100" (id=78)s4"startVD" (id=79)
s5"lighting" (id=80)s6"reading" (id=81)s7"Anna" (id=82)s8"0" (id=76)
s9"";s10"" (id=64)s11"" (id=64)*/
strcpy(Tmeg.s0,"0"); strcpy(Tmeg.s1,"500");strcpy(Tmeg.s2,"100");strcpy(Tmeg.s3,"100");
strcpy(Tmeg.s4,"startvd");strcpy(Tmeg.s5,"lighting");strcpy(Tmeg.s6,"reading");
strcpy(Tmeg.s7,"anna");strcpy(Tmeg.s8,"0"); }
MergeMessage (Tmeg); if( strlen(argv[1]) ) {
//strcpy(socketstring,Tmeg,sizeof(Tmeg));
if(transmit(socketstring, strlen(socketstring) ) ) {
printf(""%s" transmitted. ", socketstring); } else {
printf("Error occurred: %s ", strerror(errno)); return 1; } }
else { for( ; ; ) {
if ( argc < 2 ) // No argument: Just listen {
printf("Listening... "); if ( !receive() ) {
printf("Error occurred: %s ", strerror(errno)); return 1;
} return 0; } } } printf("Finished "); return 0;
} //////////////// .h file is /////////////
//#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <fcntl.h>
#include <netdb.h>
#include <signal.h>
#include <sys/wait.h>
#include <sys/ioctl.h>
#define SubLen50
//#include <ifaddrs.h>
#include <errno.h>
char MYIP[20];
char BCASTADDRESS[20];
typedef struct {
char s0[SubLen];
char s1[SubLen];
char s2[SubLen];
char s3[SubLen];
char s4[SubLen];
char s5[SubLen];
char s6[SubLen];
char s7[SubLen];
char s8[SubLen];
char s9[SubLen];
char s10[SubLen];
char s11[SubLen];
}msg_struct;
msg_struct Sendmsg;
msg_struct Tmeg; //Recivemsg;
Boolean pri[6];
char socketstring[SubLen*12];
char Ressocketstring[SubLen*12];
int kBufferSize = (SubLen*12);
View 2 Replies
View Related
Mar 22, 2010
I am trying to do something outlandish with iptables (or so I think!).I have a source sending udp packets to a destination (say dst11). Using port mirroring I am able to get all these packets to a different machine (say dst22). I am able to see these packets on dst22 interface using tcpdump.I want to analyze the packets on dst22. So what I do is put dst22 interface in promiscuous mode (using ifconfig eth0 promisc). This in theory should get the packet through the MAC layer. Now using iptables I am trying to DNAT the packets in nat prerouting to change the packets destination IP to dst22's interface and change the destination port.
View 2 Replies
View Related
Mar 31, 2010
I'm having problems with my internet connection; it seems to be working fine then every other click of a page there is no connection, then I click it again a second later and it works. I am using a wired network connection plugged into an addon wireless router.
When I use ping under network tools it seems to be fine, then freezes halfway through and doesn't receive those few packets, giving me a transmission percentage of about 70%.
View 2 Replies
View Related
Jul 30, 2011
I am making a library, but I am facing a strange problem while sending data over network using ethernet.
I am sending 39 bytes of the data from one server to slave application but some time slave receives 39 bytes and some time it receives 29 bytes. And when ever slave receives 29 bytes all the memories to which my pointers are pointing get changed. This problem is only when I am sending data from the server to slave, while sending data from slave to server I am facing no such issue.
View 10 Replies
View Related
Apr 24, 2010
I am using ubuntu 9.04. I have configured Evolution on my laptop, but it is not working.
View 1 Replies
View Related
Sep 27, 2010
I am would like to configure postfix to send and receive email across Ethernet (just for now). I have two machines with postfix installed both using Ubuntu 10.04 directly connected with an ethernet cable. I have successfully configured a machine to send email to gmail, however i have been unsuccessful in having these machines send email back and forth. I have been interested in setting up a little mail server at home and have just been trying some simple projects with postfix to start with. At this moment i am using ip addresses and am not concerned with using a dns server
machine A: has a fixed ip of 10.137.202.1, hostname = mail.me.com,
machine B: has a fixed ip of 10.137.202.20, hostname = mail.ubuntu.com
in the /etc/hosts file I map each hostname to ip address receptively (not sure if a good idea, but at this point I have been trying everything)
So I will execute from Machine B
echo "Here is a message" | mail -s 'Hello' cmd@[10.137.202.1]
I currently get from mail.log timed out while receiving the initial server greeting. I get from mail.err valid hostname or network address required in server description #[10.137.202.1]. Obviously when I run the mail command from cmd user i do not receive anything. I can receive mail from myself if from machine A, I sent an email using the command above. I would just like to send email from machine B and receive it on machine A via direct Ethernet connection. I have been through postfix documentation and have also read the postfix definitive guide and have had no luck.
Here is a recent main.cf as I have tried getting this to work (this is for machine A however, similar for B)
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
myorigin = /etc/mailname .....
View 2 Replies
View Related
Apr 26, 2011
I created a new account on laposte.net.
This account can receive messages but cannot send any from Thunderbird.
[url]
View 1 Replies
View Related
Jul 31, 2010
I have a Dell laptop with a bcm4312 wireless card. Every once in a while though, the laptop is unable to send or receive any data for 30 seconds. The connection is not dropped, and nothing shows up in any system logs. Both the wl and b43 drivers have this problem, but it works fine under vista.
View 1 Replies
View Related
May 11, 2015
I am trying to build a socket to retrieve the ethernet packets from ECU(I do not know much about the ECU). When i run my code on windows there is no problem and the code runs correctly. But when i run my code on Debian it gets stuck at s.recv(1024).
I have already set static ip in /etc/network/interfaces as follows:
Code: Select alliface eth0 inet static
address 160.48.199.91
netmask 255.255.255.0
gateway 160.48.199.254
The simple code is as below:
Code: Select all import socket
import sys
HOST = "160.48.199.91"
port = 30490
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP)
s.bind((HOST, 30490))
while True:
data = s.recvfrom(1024)
print(data)
There is no LAN or Router. When i check netstat -s i see that there are 0 UDP and 0 TCP messages received. But when i check in Wireshark on Debian i could see the displayed UDP packets. Does it mean that the UDP packets are reaching the Raspberry Pi but not received by Debian ? Or are these packets being dropped?
View 4 Replies
View Related
Jun 10, 2010
I am install CRM vtiger & Asterisk Server on ubuntu ,, i can;t get call from CRM ,,,i got this error...
View 1 Replies
View Related
Feb 15, 2010
I've a ssh server on FEDORA 12. It was going well but now it's overloaded with ARP traffic and is unable to run ssh. normally i'm getting about 150 packets in just 3 second
View 1 Replies
View Related
Nov 29, 2010
In practice I have a script that call a java program that call a linux system command. The script if I run it, from a shell functions well,so it is not a java problem. The problem come out when i put this script in a crontab schedulation. The result in this case is that java do not execute the system command. I think it depends on crontab
View 4 Replies
View Related
Feb 14, 2010
I am connected to the internet with a Rogers Rocket Stick, when I want to check my mail in Evolution the "send and receive" tab is not highlighted. It was working yesterday when I was connected through wireless why is that and how do I fix it ?
I installed Ubunto remix on a Netbook but I can not connect my Laptop with ubuntu to my Netbook with ubuntu, both these computers are connected on the network, it asked for the password to be able to connect on both computers but I cant get the two to communicate with each other .... yesterday when I still had windows xp on my Netbook I had no problem connecting the two computers ...
View 5 Replies
View Related
Feb 8, 2010
i have a linux server runnig oracle applications. i need to access this server from putty using ssh through internet. i did by registering my static ip with the dnydns.org and i am able to connect to the server. but now there is no security to authenticate any user as any one knowing the password can login to it.
i thought of configuring the firewall of linux server but the client ip`s are not static and they change continiously. so thought of keeping one more pc between the server and the router which will do the work of authenticating. but i am confuse as how to configure it to allow the packets coming from the internet after authenticating and to by pass the packets generated from internal LAN?
View 8 Replies
View Related
Sep 26, 2010
I want to send Received UDP Packets to neighbor MAC Address. Anyone can guide me to how to do it?
I can received UDP packets and then forward to unicast address as follow: How can i modify this codes (Maybe Last Line) to send the received packets to destination MAC Address instead of destination IPv6 Address?
Code:
int main(int argc, char ** argv)
{
int s,s1;
struct sockaddr_in6 a,a1;
[Code]....
View 8 Replies
View Related
May 20, 2011
I have a system running 11.04 and it is dropping packets on the hardwired ethernet interface to other systems on the LAN, only in the inbound direction. It drops packets every 5 seconds. I verified this with iperf. Outbound packets pass with no problems. The network card in this system is a Broadcom Corporation NetXtreme BCM5752
View 9 Replies
View Related
Aug 30, 2010
i need to write a program in c that can sniff packets from Ethernet and distinguish RTP packets from Non-RTP packets, i have no idea what should i do
View 9 Replies
View Related
Aug 21, 2010
on ubuntu 8.04 and evolution has stopped sending or receiving when click send/receive button. it flashes something but too fast to read. i have renamed mail folder but no go. i have checked settings but no go. i have reinstalled evoulution from synaptic but no go.
i think i have a corrupt file or something like that.
View 1 Replies
View Related
May 29, 2010
I was running Ubuntu 9.04, no problems. I did a new installation of 10.04 and could not send or receive mail (Thunderbird). Both would time out. tried two other mail programs to see if Thunderbird was the problem, but they did the same.So I did dual boot installation, with 9.04 and 10.04. The same: mail OK in 9.04 but not in 0.04. So that seemed to eliminate everything as a problem outside of my computer.One night I remembered that ipv6 could be a cause, and toggled it in Thunderbird. It has been an "almost". I can now receive but not send.For example, the bottom bar will say: "Connecting to smtp.edicionescc.com" and after a while time out.I can ping smtp.edicionescc.com with no problem
Jos鼯textarea></p>
<input type='hidden' name='ID[5]' value='74701' />
<input type='hidden' name='URL[5]' value='http://www.linuxquestions.org/questions/linux-
[code]...
View 1 Replies
View Related
Mar 21, 2011
so I'm really new to using Linux, and I searched the forums, but most people seem to have trouble sending mail, not receiving it. When I send mail from the CLI, it gets delivered fine (from travis@travishoward.net) But when I try to reply or mail to the server, I get this message back:
Code:
----- The following addresses had permanent fatal errors ----- <travis@travishoward.net>
(reason: 554 5.7.1 <travis@travishoward.net>: Relay access denied)
[code]...
View 2 Replies
View Related
May 2, 2011
I used this tutorial to setup to setup iSpconfig postfix courier:but i cannot send or receive email:
Code:
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
B450C72116A 595 Mon May 2 17:33:50 www-data@mail.greensevenstudios.com
[code]...
View 2 Replies
View Related
Nov 25, 2009
I have it config'd to send and receive on multiple accounts and they all receive email, but SMTP times out and even sends no matter what account I try to send with. I thought maybe security and dropped the firewall and still won't send. No matter which account I try to send to it says its timing out trying access I have no problems on my Mac so no network problems. For grins I install Thunderbird and setup one account and same thing received but no send. What could it be blocking outgoing email??? I have CentOS 5 with all available updates.
View 3 Replies
View Related
Jun 24, 2009
I have Linux mail server, It always encounter this problem, when i shut down or restart the server. You cannot receive mail but you can send..i use the following services:
iptables -F
service iptables restart
service sendmail restart
[code]...
View 5 Replies
View Related
Jan 3, 2011
How I can send and receive SMS via CDMA Connection. I have tried Gammu (hangs) and Gnome-Phone-Manager (Can't run on GTK3). Gnokii? Well ... I'd like to hear from someone who has succeeded with it on F14. I don't like having to boot into Windows to check my Phone Credits
View 11 Replies
View Related
Aug 23, 2010
I need help with my K mail I set everything up correctly but it does not send nor recieve email to my kmail. I however did recieve my email to my windows base email through charter internet but not through K mail can
View 2 Replies
View Related