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
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
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
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
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
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
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
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
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
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
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
LEARN ABOUT OSX
sockatmark
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