05-12-2011
You're probably spinning your write() retries faster than the buffers that feed the socket can drain. If it's not returning an error, keep trying to send the bytes that you didn't already send.
And FWIW, the number of bytes a read() returns on the other end are only loosely correlated with what you write(). The data comes out as a stream - literally. If you have to take it apart, you have to provide your own delimiters as Loic already posted.
Just because it works fine under Solaris and not under Linux means almost nothing.
This User Gave Thanks to achenle For This Post:
9 More Discussions You Might Find Interesting
1. Programming
I am using BSD TCP sockets under Debian Linux 2.6 and no matter what I do, the socket blocks on recv.
I have set O_NONBLOCK and O_NDELAY using fcntl to no effect.
Any ideas ? (3 Replies)
Discussion started by: johnmb
3 Replies
2. 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
3. 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
4. Shell Programming and Scripting
Hello, this is probably a simple request but I've been toying with it for a while.
I have a large list of devices and commands that were run with a script, now I have lines such as:
a-router-hostname-C#show ver
I want to print everything up to (and excluding) the # and everything after it... (3 Replies)
Discussion started by: ippy98
3 Replies
5. Shell Programming and Scripting
I have a bunch of database files in a directory. Their name are like:
1234_ABCD_01.dbf, 28hrs_ABCD_02.dbf
I want to change them in bulk to:
1234_XXXU_01.dbf, 28hrs_XXXU_02.dbf.
I mean I just want to replace ABCD by XXXU. don't change other part of the file name and the contents of the... (4 Replies)
Discussion started by: duke0001
4 Replies
6. Programming
Hi,
I have to write an UDP broadcast. It works so far, but how can I get the actual network address at runtime? Should run under Linux and Unix (Solaris).
Thanks (1 Reply)
Discussion started by: peng1967
1 Replies
7. Programming
I am trying to make a server and client, the client will choose between some options and the server will react accordingly.
After a some reads and writes that work the server needs to read from client an INT i use this:
read(newSd,&k,sizeof(int));But even if all the other times there was no... (1 Reply)
Discussion started by: theSling
1 Replies
8. Cybersecurity
void main() {
long ((long)(&array));
int x;
for (;;)
{
(array) =+ 1023;
printf("%c", array);
}
}
What is wrong with this code to print Linux RAM? (13 Replies)
Discussion started by: Alux
13 Replies
9. Red Hat
Hi,
In my server I am getting below errors in "/var/log/messages":
Oct 8 14:45:44 LKOGOMEEMM01 kernel: type=1400 audit(1444295744.792:15818): avc: denied { write } for pid=53421 comm="ip" path="/var/VRTSvcs/log/tmp/IPMultiNIC-8" dev=dm-0 ino=2754879 scontext=system_u:system_r:ifconfig_t:s0... (4 Replies)
Discussion started by: rochitsharma
4 Replies
LEARN ABOUT DEBIAN
rdma_post_writev
RDMA_POST_WRITEV(3) Librdmacm Programmer's Manual RDMA_POST_WRITEV(3)
NAME
rdma_post_writev - post an RDMA write work request.
SYNOPSIS
#include <rdma/rdma_verbs.h>
int rdma_post_writev (struct rdma_cm_id *id, void *context, struct ibv_sge *sgl, int nsge, int flags, uint64_t remote_addr, uint32_t rkey);
ARGUMENTS
id A reference to a communication identifier where the request will be posted.
context User-defined context associated with the request.
sgl A scatter-gather list of the source buffers of the write.
nsge The number of scatter-gather array entries.
flags Optional flags used to control the write operation.
remote_addr The address of the remote registered memory to write into.
rkey The registered memory key associated with the remote address.
DESCRIPTION
Posts a work request to the send queue of the queue pair associated with the rdma_cm_id. The contents of the local data buffers will be
writen into the remote memory region.
RETURN VALUE
Returns 0 on success, or -1 on error. If an error occurs, errno will be set to indicate the failure reason.
NOTES
For a list of supported flags, see ibv_post_send. Unless inline data is specified, the local data buffers must have been registered before
the write is issued, and the buffers must remain registered until the write completes. The remote buffers must always be registered.
Write operations may not be posted to an rdma_cm_id or the corresponding queue pair until it has been connected.
The user-defined context associated with the write request will be returned to the user through the work completion wr_id, work request
identifier, field.
SEE ALSO
rdma_cm(7), rdma_connect(3), rdma_accept(3), ibv_post_send(3), rdma_post_write(3), rdma_reg_write(3), rdma_reg_msgs(3)
librdmacm 2010-07-19 RDMA_POST_WRITEV(3)