Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Partial Write for sockets in LINUX Post 302521929 by achenle on Thursday 12th of May 2011 08:09:06 PM
Old 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

Linux BSD sockets blocking issue

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

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

3. 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

4. Shell Programming and Scripting

AWK - Print partial line/partial field

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

How to bulk changing partial file name in Linux?

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

Sockets (C under Linux)

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

help: problem with sockets write/read

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

root cannot write to Linux RAM

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

SE Linux write permission denied

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
RDMA_POST_SENDV(3)					   Librdmacm Programmer's Manual					RDMA_POST_SENDV(3)

NAME
rdma_post_sendv - post a work request to send a message. SYNOPSIS
#include <rdma/rdma_verbs.h> int rdma_post_sendv (struct rdma_cm_id *id, void *context, struct ibv_sge *slg, int nsge, int flags); ARGUMENTS
id A reference to a communication identifier where the message buffer will be posted. context User-defined context associated with the request. slg A scatter-gather list of memory buffers posted as a single request. nsge The number of scatter-gather entries in the slg array. flags Optional flags used to control the send operation. DESCRIPTION
Posts a work request to the send queue of the queue pair associated with the rdma_cm_id. The contents of the posted buffers will be sent to the remote peer of a connection. RETURN VALUE
Returns 0 on success, or -1 on error. If an error occurs, errno will be set to indicate the failure reason. NOTES
The user is responsible for ensuring that the remote peer has queued a receive request before issuing the send operations. For a list of supported flags, see ibv_post_send. Unless the send request is using inline data, the message buffers must have been registered before being posted, and the buffers must remain registered until the send completes. Send 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 send 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_send(3), rdma_post_recv(3) librdmacm 2010-07-19 RDMA_POST_SENDV(3)
All times are GMT -4. The time now is 04:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy