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_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)
All times are GMT -4. The time now is 02:22 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy