Programming :: Receiving Wrong Data On Winsock From Unix Socket

Jan 28, 2011

currently I've got a big problem on programming with sockets. I use the winsock2 API and want to receive data from a multicast adress running on a UNIX-PC. The connection works fine and I really receive data from this group, but as it seems not the right packages. The received data is saved in a char[]. E.g. at received_msg[12] is a float value. This one I would like to read out, convert and use it in later progress the next value is y at received_msg[16]. The same Code works on a Unix PC with unix sockets but converted to winsock I've got the described problem and I have to make this code work under windows.

Here a piece of the code (received_msg[12]='3f'):

Buffer is a struct containing the two float values x and y. If I convert the char as this under windows the value of x is a huge number. The correct value is around 192, so receveid_message[12] should be 1.92. Could it be that the Unix-PC is sending data in an other way than the winsock receive it?

View 2 Replies


ADVERTISEMENT

Programming :: Receiving The Entire Message Using TCP Socket?

Apr 15, 2010

I am trying to create a socket server in user space and a client in kernel space and send big messages (a little over 64kbytes) between them.

I used an kernel socket programming examplefrom this link - url for the kernel client side.

When the client in kernel side sends out a 64k message, usually, the server side in the user space will get a big part of the message, but will stuck at waiting for the recv() to return to get the rest of it. So I am chopping the packets into small pieces, 1000 bytes each to send to the server. But only some times, the packets will all arrive at the server/receiver side, and the server and assemble the whole message. Many times, the server is stuck at waiting for the last a couple of byte from the sending side. From the sending side printk log, it has already sent every thing.

I am attaching some log here, and the code at the end. Can someone give me some idea on how to force the data to arrive at the receiver side? Maybe the kernel on the receiver side is holding part of the packet so
the receiver program in the user space is blocked at recv()? I tried adding TCP_NODELAY on sockets on both sender and receiver sides, both it did not help.

I got a connection from (10.16.216.217 , 1489)
- Server side stuck on recv()-
bytes_recieved 17384
bytes_recieved 32768, total received 50152, expected 65540
- Client side is already done -
code....

View 2 Replies View Related

Networking :: Socket Programming: Sending And Receiving Msgs Back And Forth

May 19, 2010

I have a server which is used by number of client Apps. Now when a client initiates a sendto request to a server it has to respond(after recvfrom) by sending a message using sendto back to client and this should be done back and forth.

What I dont understand is, does the client have to open a new port to receive packets from client? If yes, then how will server know to what port of the client(assuming server ports are well-known to clients)?

I had given up on sending messages back and forth using UDP and switched to TCP. I could send a read and write message back and forth. But the trouble comes when I have more than one client wanting to talk to server using SOCK_STREAM. The first one gets through but the second client seems to get blocked forever(but I got no error upon socket creation or upon connect with the server on the same port as the previous client)..

View 4 Replies View Related

Programming :: Read Data From A Socket?

Aug 24, 2010

I need to read data from a socket but it should be always listening because data arrives continuously .. I thought something like this would do it but it doesn't work .... I already set the socket options before

Code: char databuf[1024];
int datalen = sizeof(databuf);
if(read(sd, databuf, datalen) < 0)
{

[Code]....

View 9 Replies View Related

Programming :: Detect A Closed Tcp Client Connection When Client Is Only Receiving Data ?

Mar 9, 2011

I am writing a TCP server in C, and the server listens to incoming client connections and accepts them. It then creates a thread to handle the client. The clients are expected to only receive data from my server and not send any data. So if I use a select() call with a recv(), I believe that the recv() will just block forever since there will not be any data coming from the client. If I use a non-blocking recv(), then this will just return a 0 which tells me nothing because the client is not expected to send any data. I am not sure if I have misunderstood some socket concepts, but I need a solution to detect when the client has disconnected so that I can close the socket and stop sending data to the client. As I understand it, simple ACKs etc are not captured by the recv(), and only data sent by the client will cause recv() to return a non-zero value, so I am not sure how to know when the client has disconnected.

View 7 Replies View Related

Programming :: Socket Programming - Detect Whether A Client Socket Is Closed / Active?

Mar 8, 2011

iam just trying to connect to server which accepts one client and server will read(blocking operation) infinitely, but After closing the client socket the server "read operation" is returning zero and "errno variable(in errno.h)" value is also zero. how can i detect whether a client socket is closed/active..?

client.c
Serv_Addr.sin_family = AF_INET;
Serv_Addr.sin_addr.s_addr = inet_addr("127.0.0.1");
Serv_Addr.sin_port = htons(26553);
if( 0 > connect (Serv_Fds,&Serv_Addr,sizeof(Serv_Addr)) )
{
perror("connect");
return 0;
[Code]....

View 3 Replies View Related

Programming :: Debian Serial Port Read() Return Wrong Data?

Jul 6, 2010

I am implementing a simple serial protocol where my ARM9 board, running Linux is communicating to a slave peripheral board. The Master sends a 12 byte data stream and the peripheral board returns status in a 23 byte response. The serial port is opened in raw mode. It works perfectly on 44 reads; however, on the 45 read the data returned from the read() is incorrect. I've framed what's being sent on an oscope and it is correct.The coincidence is that 23 x 44 = 1012. It's as though the receive buffer is 1K and when I go past the boundary I get bad data. The read following the bad one is good again.I've tried flushing the buffer before reading but get the same result.Here's the port initialization code:

Code:
int initport(int fd)
{

[code]...

View 4 Replies View Related

Networking :: Kill/disconnect Unix Domain Socket?

Jan 5, 2010

I have described my issue in detail here: [URL] basically, I am having a mysql server which keeps piling up on it's unix domain socket connections.

here's a small example of netstat as it looks now (count about 80-100 connections paired with httpd):

Code:
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 3521428 12429/mysqld /tmp/mysql.sock

[Code].....

This is indeed a mysql server issue as far as I managed to debug it but until a workaround/fix is found I need to have my server responsive and the first idea that comes to my mind is to somehow kill those stray connections. as described in the mysql topic mentioend above, killing from mysql will not work. I need to kill them from outside mysql. I have setup a crontab script to kill and restart the mysql server when it cannot connect and it runs every 5 min. however this only lead to mysql being down sooner rather than later because in many cases just kill -9 and then service start mysql does not do the job (it's either part of the same issue of mysql or another issue). basically I need to manually kill mysqld instances a bunch of times until it's ok, OR, if that doesn't work, stop everything that is using mysql, wait a few minutes, and then start mysql. so I ditched that script and now I am manually restarting mysql server every ~ 24 hours.

so basically it's a pain. if I were to kill the stray connections however, I will not have to bother every day with restarting mysql.

View 2 Replies View Related

Debian :: Can't Login To MySQL - Plugin Unix Socket Is Not Loaded

Jul 23, 2015

I just switched form MySQL to MariaDB for my WordPress website which is run with Apache, but I had a little problem logging in. So, I backed up all of my databases, deleted all of MySQL's configuration files, and reinstalled MariaDB. However, now I'm completely unable to login to MariaDB.

Whenever I try to, it says: ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded.

Also, why didn't MariaDB ask me to set up a password during the installation process like MySQL does?

View 8 Replies View Related

General :: Socket Programming - Feed Some Words One By One To The Socket

Jul 6, 2010

i'm writing a simple program of client socket program. Here below is the code sample which i'm writing...

Code:
//tcp_client.c
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include<string.h>
#include<stdlib.h>
[Code].....

the above code works fine.if we copmile and run ./a.exe 192.xx.xx.xxx 1111 and press enter it works fine..everytime it asks "Please enter the message: " and if give that will be displayed in server. but my problem is i dont want to print everytime "Please enter the message: " i just want to feed some words one by one to the socket.

View 4 Replies View Related

Programming :: Setsockopt : Socket Operation On Non-socket Getting Error?

Mar 30, 2009

im getting that error in my code for some reason. I compiled my code, and when i try to run this server it throws me an error on my call to setsocketopt(). The only way it can reach that part of my loop is if it succeeds when it calls sock() so I dont understand why the error says its an operation on a non-socket. Im just trying to set up a server to pass messages from a client to it a viceversa. Here is the code:

Code:
int main()
{
int socket_fd, new_socket_fd, k;
struct addrinfo hints, *server_info, *p;
struct sockaddr_storage peer_address;
code....

View 7 Replies View Related

Networking :: Nagios Not Receiving SNMP Data?

May 18, 2010

I have recently set up nagios on a ubuntu server (9.10), and set it up to monitor all the servers, switches etc, following the quickstart guide provided on the nagios website.My problem is this:I have setup the nagios-plugins, and tried to set it up to monitor the network switches via SNMP but receive the following within the nagios web interface:SNMP problem - No data received from host I tried it from the command line, and got the exact same error.Is there some further configuration I need to do to be able to get this data?I've used up all my google-fu, and read over everyone else's problems on every forum I could find, but to no avail.

View 6 Replies View Related

Software :: Receiving UDP Multicast - Blocks As If There Is No Data

Nov 6, 2010

I am trying to port some MS Visual Studio C++ code to Linux/wxWidgets. The code is socket-based and very similar between Windows and Linux. In Linux the socket, bind, and setsocketopt all return with no error. See:

Code:
BOOL CAV15Input::SetupSocket(BOOL Out)
{ if(pU->PrDebug) {
sprintf(_send,"CAV15Input::SetupSocket for port %d",pSonar->dPort);
pU->OutMsg(_send,1,0); } pSonar->UDP_Sock=0; pSonar->UDPError=0;
pSonar->UDP_Sock=socket(AF_INET,SOCK_DGRAM,0);
if(pSonar->UDP_Sock<0 ) {
pU->OutMsg("socket failed on SetupSocket",11,0);
pSonar->UDP_Sock=0;
pSonar->UDPError|=4;
return FALSE; }
// the AF_INET address family, which contains IP addresses,
local.sin_family=AF_INET;
local.sin_addr.s_addr=inet_addr(pSonar->IP_Add_PC);
local.sin_port=htons(pSonar->dPort);
// from Dave Goffe:
//> int t = 1;
//>
//>setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,&t,sizeof(t));
int t=1; if(setsockopt(pSonar->UDP_Sock,
SOL_SOCKET, SO_REUSEADDR,
(char *)&t,sizeof(t)) <0) {
CloseSock();
pU->OutMsg("set SO_REUSEADDR failed in SetupSocket",11,0);
pSonar->UDPError|=4;
return FALSE; }
if(bind(pSonar->UDP_Sock,(sockaddr *)&local,sizeof(local)))
{ CloseSock();
pU->OutMsg("bind failed in SetupSocket",11,0);
pSonar->UDPError|=8; return FALSE; }
if(pU->PrDebug) {
sprintf(_send,"socket setup & bind OK for port %d",pSonar->dPort);
pU->OutMsg(_send,1,0); }
// Join multicast group
if(pSonar->datatype) // for element data
mreq.imr_multiaddr.s_addr=inet_addr(pSonar->IP_Add_ELD);
else // for beam data
mreq.imr_multiaddr.s_addr=inet_addr(pSonar->IP_Add_HRB);
mreq.imr_interface.s_addr=inet_addr(pSonar->IP_Add_PC);
if(setsockopt(pSonar->UDP_Sock,
IPPROTO_IP, IP_ADD_MEMBERSHIP,
(char *)&mreq,sizeof(mreq)) <0) {
CloseSock();
pU->OutMsg("join multicast failed in SetupSocket",11,0);
pSonar->UDPError|=16;
return FALSE;
} if(pU->PrDebug) {
if(pSonar->datatype) // for element data
sprintf(_send,"join multicast OK on %s",pSonar->IP_Add_ELD);
else // for beam data
sprintf(_send,"join multicast OK on %s",pSonar->IP_Add_HRB);
pU->OutMsg(_send,1,0); }
jMCast=1; return TRUE; }

But then when I try
recv(pSonar->UDP_Sock,&pUDP->u_dg_cM.cM[8],reedlen,0);
it blocks as if there is no data. (In Windows this works fine.) Is there something else in Linux and/or wxWidgets that I'm missing that could prevent UDP datagrams from being received? Is there some way in Linux to monitor incoming UDP traffic?

View 2 Replies View Related

Networking :: Sending / Receiving Data Simultaneously Using BSD Sockets

Jun 25, 2010

I would like to send a data using one thread and receive a data using other thread by using a same socket connection using USD sockets. The calls i am using for sending and receiving are send(), recv(). let me know is it possible to send and receive the data parallel (Full duplex communication)?

View 2 Replies View Related

Software :: CHECK_NRPE: Error Receiving Data From Daemon

Jun 2, 2010

I have setup Nagios, Nagios Plugins, and nrpe. I have the nrpe running through xinetd.When I run /usr/local/nagios/libexec/check_nrpe -H <my_ipaddress> and I get the error

CHECK_NRPE: Error receiving data from daemon

View 14 Replies View Related

Fedora :: Finding Out What Processes Sending / Receiving Network Data?

Oct 27, 2010

I have a desklet that, occasionally after toying with network stuff, will tell me that large amounts of data are being sent/received. What's a good way to determine what processes are occupying these resources?!

View 14 Replies View Related

General :: Change Size Of Network Data Receiving Buffer On OS?

Jan 21, 2010

We know that, in a network, data transfer time is dependent on capacity of the receiving node. I have two Linux systems A (sender) and B (receiver) connected. I want to simulate congetion in a network, that means I want to increse the time taken to transfer some data. I believe, I can do this if I can reduce the capacity of the receiver node B. That perhaps possible by decreasing the receiving buffer size of B. How can I change the receiving buffer size of this linux system B?

View 1 Replies View Related

CentOS 5 Hardware :: Receiving "wrong File System Type" Messages?

Feb 9, 2010

I tried to post this then couldn't find it anywhere, so I will try again. I am wondering if there is a way to determine what file system type was put on a volume when the file system was made? I have a MD0 device that wouldn't mount. I was receiving "wrong file system type" messages.

I tried df but this only works with mounted file systems correct? I am looking for a command to run on a drive/volume that is not mounted so I can figure out what file system is on it.

This time I was able to: mount /dev/md0 /mnt/storage without and entry in the fstab file. I then just entered mount and it displayed the file system as jfs.

Is there another way to determine the file system type?

View 1 Replies View Related

General :: Conversion Of Big Endian Data From Unix To Little Endian Data

Aug 8, 2011

Currently we have migrated data from Unix linux. The data in Unix is in Big endian byte structure. Where are as Linux (suse linux) byte structure us little endian. This byte order mismatch is creating problem when data is read again in microfocus cobol.

Is there any way to set byte order in Linux is big endian?

Is there any utility to convert data in big endian byte structure to little endian byte order.

View 4 Replies View Related

General :: Migration Of Data File In Unix

Aug 10, 2011

We planned to migrate data files in Unix to Linux. The file in Unix is in big endian data format where is linux is configured as little endian byre structure. This is causing problem in data computation.

How data can be ported to linux ( converting big endian to little endian).

How linux configured can be configured for big endian byte structure.

View 3 Replies View Related

Networking :: Socket Timeout Happening Despite Data Being Available?

Dec 29, 2010

I am using select to read the data from socket. on a load of 25 req per second, for some req i am getting the timeout in select (returning zero), but i am able to see the data on TCP using wireshark. kindly suggest what could be the possible reasons.

View 5 Replies View Related

General :: Surveying The Unix Customer Statistical Data

Aug 11, 2010

I have been assigned with a job to survey the customers who use Open Source Linux and Unix distributions.Though Red Hat and Ubuntu are the most popular distros, but if someone who have ever got involved in tracking what % of the Linux Distribution being used by the customers.

View 14 Replies View Related

Programming :: Unix Programming - Single Thread Server Can Support Exactly 2 Clients At Once

Sep 28, 2010

A simple TCP based chat server could allow users to use any TCP client (telnet, for example) to communicate with each other. For this question you should consider a single process, single thread server that can support exactly 2 clients at once, the server simply forwards whatever is sent from one client to the other (in both directions). Your server must not insist on any specific ordering of messages as soon as something is sent from one client it is immediately forwarded to the other client. As soon as either client terminates the connection the server can exit

View 4 Replies View Related

Programming :: Timer In Socket Programming - Wait For X Sec After Read() And Then Disconnect The Client Connection

Mar 8, 2011

I have a server listening on incoming client connections. Once the client establishes SSL connection with the server, the server waits on read() from the client. Only Client can disconnect the connection. I want to have a timer in the server program to wait for x secs after read() and then disconnect the Client connection.

View 3 Replies View Related

Programming :: Socket And Timer Programming - Server Doesn't Execute Any Msg Which Client Sent

May 16, 2011

i have a server program which accept multiple client connection and am using polling. like every 2 secs it will look to client whether any data is received after it binded. i have used setitimer but there is runtime error i got.. the server accept all client connection but doesn't execute any msg which client sent.

#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<netdb.h>
#include<unistd.h>
#include<pthread.h>
#include<string.h>
[Code]....

View 1 Replies View Related

Fedora Installation :: Use Update Utility Receiving Error - Repository Data For Installed Repository Not Found

Apr 19, 2010

I just installed Fedora Core 12 and when attempting use the update utility am receiving the following error:

[code]...

View 3 Replies View Related

Programming :: Unix Programming - Single Process That Does Not Start Up Any Other Threads

Sep 28, 2010

i want a process that can operate as both a TCP echo server and a UDP echo server. The process can provide service to many clients at the same time, but involves a single process that does not start up any other threads.

View 3 Replies View Related

Programming :: Socket Programming While Displaying Received Message In File

May 11, 2011

i have problem in socket programming, while displaying received message in file,i got a problem... i cant able to write it in the file.... this is the code....

Code:
/* tcpserver.c */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
[Code]....

now my problem is run time error i can able to create file but i cant able to write file....log.txt contain nothing.... as here i have give sample code... dont say not initialising function and all.... i have initialised , please only see func1() - my problem is only not able to write msg which i got received from the client..

View 2 Replies View Related

Programming :: Use Socket Programming In Order To Implement Chatting Feature?

Aug 25, 2010

how to use socket programming in order to implement chatting feature

View 5 Replies View Related

Programming :: Having Trouble Receiving Image In Android

Feb 19, 2011

I'm trying to send an image (which can vary in file size) from a python server to an android client . I'm not getting any errors and the file is being created client side however it always seems to fall short of the total file size. I have tried many different options in regards to input streams and buffer sizes but I have had no luck.

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved