Sponsored Content
Top Forums Programming help: problem with sockets write/read Post 302577670 by Corona688 on Tuesday 29th of November 2011 02:51:11 PM
Old 11-29-2011
If it reads without the client sending, then there was data there waiting to be read which you didn't read before. You couldn't have been reading all the data the client sent.

Also, you should use send/recv for sockets, not read/write, though that wouldn't cause this problem.
 

10 More Discussions You Might Find Interesting

1. Programming

popening for read and write

How can 'popen()' be used for reading and writing to opening pipe? If i try 'popen("prog", "rw")' and then put and get chars - it does not work. What is wrong? (1 Reply)
Discussion started by: szzz
1 Replies

2. Programming

Problem with read & write

Hello mates: I met problem with using read() & write(). I m trying to use read twice on client first time is the size of buffer, 2nd time is the buffer. I think I have to, coz I dnot know file size. So, I write twice on server as well -- 1st, filesize; 2nd, buffer. The problem is, sometimes,... (11 Replies)
Discussion started by: EltonSky
11 Replies

3. Programming

Problem in file transfer using sockets

Hai Friends I am writing a c program to transfer files from one system to another using TCP/IP socket programming.. My Recieve Program #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> extern int errno; extern char *sys_erlist; void... (2 Replies)
Discussion started by: collins
2 Replies

4. Shell Programming and Scripting

Find all files with group read OR group write OR user write permission

I need to find all the files that have group Read or Write permission or files that have user write permission. This is what I have so far: find . -exec ls -l {} \; | awk '/-...rw..w./ {print $1 " " $3 " " $4 " " $9}' It shows me all files where group read = true, group write = true... (5 Replies)
Discussion started by: shunter63
5 Replies

5. Programming

problem with lots of open sockets

I'm programming in C with lots of sockets, (asynchronous handling), and for a while it goes ok, but after a while it starts to hang, or not get complete connections anymore. checking my router, i see that i get nat tables overflow and even my DNS cacher seems to be having serious issues... ... (4 Replies)
Discussion started by: alien999999999
4 Replies

6. IP Networking

read/write,write/write lock with smbclient fails

Hi, We have smb client running on two of the linux boxes and smb server on another linux system. During a backup operation which uses smb, read of a file was allowed while write to the same file was going on.Also simultaneous writes to the same file were allowed.Following are the settings in the... (1 Reply)
Discussion started by: swatidas11
1 Replies

7. UNIX for Dummies Questions & Answers

is there any problem with functions and sockets?

hi I am writing a client-server program and the functions I've written on the server are never executed. even something as easy as typing hello does not. is there something to be taken into account to use functions? I appreciate any information (2 Replies)
Discussion started by: oticeip
2 Replies

8. Programming

c++, raw sockets, stopping kernel write in header?

Hi, im trying to lern about raw sockets with my debian and c++. Tried to make a icmp and tcp packet and send it with sendto. Checked on wireshark and recognized that kernel changed my headers. So searched about stopping the kernel change the header and tried it with setsockopt, like said in at this... (4 Replies)
Discussion started by: sandcastle
4 Replies

9. Red Hat

How can I monitor network in CentOS .5.5 , my application refuse to read sockets

Hi I have wired problem with one of my applications (servers ) , its suddenly starts to read socket and before it written back , the connection is closed this is what I see in my logs . is there any took in Linux centos that lets me see what is happening in this time frame ? (1 Reply)
Discussion started by: umen
1 Replies

10. UNIX for Dummies Questions & Answers

Partial Write for sockets in LINUX

We have a server-client communication in our application. Sockets are used for the communication. We are using AF_INET sockets with SOCK_STREAM(TCP/IP). Also these sockets are in Non Blocking mode (O_NONBLOCK). Application is written in C++ on UNIX. In our system the Server will write to a... (4 Replies)
Discussion started by: sanushchacko
4 Replies
SOCKATMARK(3)						   BSD Library Functions Manual 					     SOCKATMARK(3)

NAME
sockatmark -- determine whether the read pointer is at the OOB mark LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <sys/socket.h> int sockatmark(int s); DESCRIPTION
To find out if the read pointer is currently pointing at the mark in the data stream, the sockatmark() function is provided. If sockatmark() returns 1, the next read will return data after the mark. Otherwise (assuming out of band data has arrived), the next read will provide data sent by the client prior to transmission of the out of band signal. The routine used in the remote login process to flush output on receipt of an interrupt or quit signal is shown below. It reads the normal data up to the mark (to discard it), then reads the out-of-band byte. #include <sys/socket.h> ... oob() { int out = FWRITE, mark; char waste[BUFSIZ]; /* flush local terminal output */ ioctl(1, TIOCFLUSH, (char *)&out); for (;;) { if ((mark = sockatmark(rem)) < 0) { perror("sockatmark"); break; } if (mark) break; (void) read(rem, waste, sizeof (waste)); } if (recv(rem, &mark, 1, MSG_OOB) < 0) { perror("recv"); ... } ... } RETURN VALUES
Upon successful completion, the sockatmark() function returns the value 1 if the read pointer is pointing at the OOB mark, 0 if it is not. Otherwise, the value -1 is returned and the global variable errno is set to indicate the error. ERRORS
The sockatmark() call fails if: [EBADF] The s argument is not a valid descriptor. [ENOTTY] The s argument is a descriptor for a file, not a socket. SEE ALSO
recv(2), send(2) HISTORY
The sockatmark() function was introduced by IEEE Std 1003.1-2001 (``POSIX.1''), to standardize the historical SIOCATMARK ioctl(2). The ENOTTY error instead of the usual ENOTSOCK is to match the historical behavior of SIOCATMARK. BSD
October 13, 2002 BSD
All times are GMT -4. The time now is 01:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy