Sponsored Content
Top Forums Programming sockets - can you send data while waiting on select() Post 302526639 by expl on Wednesday 1st of June 2011 06:11:45 AM
Old 06-01-2011
Sockets are also not available on EVERY system, does not mean you should not use them. The option is available on Windows, Linux and BSDs, haven't checked more.

Go check the POSIX specification for socket's options. The STANDARD said so.

---------- Post updated at 05:11 AM ---------- Previous update was at 04:38 AM ----------

Quote:
Originally Posted by Loic Domaigne

Your reasoning is excellent, but your basic assumptions are off. If you read carefully my posts, I just mentioned that it is possible to block on a socket, while sending data, since TCP is full-duplex. Nothing more, nothing less.

And even if people err (I personally do), I don't feel the need to treat them "maroons that have no idea about what they're talking about". We're all here to learn, and this can be achieved in a respectful way.

Just my 2c,
Loïc
I apologize for my rudeness.

As in abstract implementation goes, it is possible but its not very smart as it is easy to mess up, consider blocking thread unblocks (because it gets data to read) while other thread is sending and starts sending as well, you end up with borked output, or at least there will be a race condition possibility. Smart implementation should use just one thread per connection handler.

Last edited by expl; 06-01-2011 at 07:00 AM..
 

10 More Discussions You Might Find Interesting

1. Programming

Sockets donot send any thing to client

I have written a socket program in C under RedHat Linux 6.2. This program is using SOCK_STREAM (TCP) to connect to any ip address at port # 23. The program is hosted on the linux machine and works well with Cisco routers. But when I am trying to connect to the same linux machine, it does not return... (4 Replies)
Discussion started by: biswa
4 Replies

2. Programming

Sockets select() question

Hello everyone. I have a question regarding select() function. Imagine i had passed a fd_set* as the readfds parameter. Can i add some fd to the fd_set, using FD_SET, while the thread is blocked in the select call(obviously from another thread), and will that select call monitor those fd, even if... (2 Replies)
Discussion started by: adadon
2 Replies

3. Shell Programming and Scripting

select data from list

Hi! My data file contains a two columns list. It looks like: 1 3.789 2 6.789 3 7.890 4 8.900 5 6.789 6 1.987 7 10.987 8 2.987 9 0.987 I would like to create a new list using the awk command, just selecting data from the second column but also printing the first column. Let say I select... (3 Replies)
Discussion started by: cris48
3 Replies

4. UNIX for Dummies Questions & Answers

Send email with attachment and body : mailx , waiting for input , signal Control D

Hi, I am trying to send email with attacment and body using "mailx" (cat body.txt; uuencode attach.txt) | mailx -s "Attachment" abc@xyz.com When i type this command, the shell is still waiting for me to enter something in standard input and press control D before it sends a mail and... (2 Replies)
Discussion started by: aliaszero
2 Replies

5. Homework & Coursework Questions

program to send messages to parent using pipes and select system call

Write a program using select, which will create some number of child processes that continuously send text messages to the parent process using pipes. Each child has its own pipe that it uses to communicate with the parent. The parent uses select () to decide what pipes should be processed to... (1 Reply)
Discussion started by: ripssingh
1 Replies

6. Shell Programming and Scripting

Select data from a file

Hi , I want to select data from a file .the datas in a file will be in both upper and lower case. can able to select particular data using awk. file is like Ram Selva 24332 UNIXTEAM Karthi Siva 43322 UNIXTEAM In read if i enter selva as lowercase its not displaying result. (9 Replies)
Discussion started by: boopal
9 Replies

7. Shell Programming and Scripting

Sed for select and retrieve data

I would like to recover the data from 3 text tags. These three markers are located between the tags specific location <tag1> and </tag1> knowing that they are in many places. In File.txt: <tag2>txt2</tag2> <tag3>txt3</tag3> <tag4>txt4</tag4> .... <tag1> <tag2>txt2</tag2>... (3 Replies)
Discussion started by: Amad
3 Replies

8. UNIX for Dummies Questions & Answers

Using grep to select data from file

Hello all, Once again I need to call upon the masters for help. I have a file called endpoint_data. IN that file I have groups of endpoints. However all I need from the file is this.... ENDPOINT NAME = SIPWOODSBC SIG PRI FQDN/IP ADDRESS/DOMAIN NAME = 10.xxx.xxx.xxx SIG SEC... (4 Replies)
Discussion started by: jay11789
4 Replies

9. IP Networking

Packetize data to send it over tcp sockets

Hello All, I am very new to socket programming and client server architecture. I have to write a client which will send some data to server and server will display it on its console. I am ready with both client and server but my problem is with packetizing of data -- I have... (1 Reply)
Discussion started by: anand.shah
1 Replies

10. Shell Programming and Scripting

awk to select 2D data bins

I wish to use AWK to do something akin: Select all 2D data with 1<$1<2 and -7.5<$2<-6.5 But it's not working awk 'END {print ($1<=2&&$1>=1&&$2<=-6.5&&$2>=-7.5)}' bla Data: -1.06897 -8.04482 -61.469 -1.13613 -8.04482 -61.2271 -1.00182 -8.04482 -61.2081 -1.06897 -8.13518 -60.8544... (2 Replies)
Discussion started by: chrisjorg
2 Replies
shutdown(2)							System Calls Manual						       shutdown(2)

NAME
shutdown() - shut down a socket SYNOPSIS
DESCRIPTION
The system call is used to shut down a socket. In the case of a full-duplex connection, can be used to either partially or fully shut down the socket, depending upon the value of how. how Interpretation Further receives are disallowed Further sends are disallowed Further sends and receives are disallowed The s parameter is a socket descriptor for the socket to be shut down. Once the socket has been shut down for receives, all further calls return an end-of-file condition. A socket that has been shut down for sending causes further calls to return an error and send the signal. After a socket has been fully shut down, operations other than and return appropriate errors, and the only other thing that can be done to the socket is a Multiple shutdowns on a connected socket and shutdowns on a socket that is not connected may not return errors. A on a connectionless socket, such as only marks the socket as unable to do further or calls, depending upon the value of how. Once this type of socket has been disabled for both sending and receiving data, it becomes fully shut down. For sockets, if how is or the connection begins to be closed gracefully in addition to the normal actions. However, the call does not wait for the completion of the graceful dis- connection. The disconnection is complete when both sides of the connection have done a with how equal to or Once the connection has been completely terminated, the socket becomes fully shut down. The option (see socket(2)) does not have any meaning for the call, but does for the call. For more information on how the call interacts with sockets, see socket(2). If a is performed on a socket that has a pending on it, that socket becomes fully shut down when how AF_CCITT only The how parameter behaves differently if the socket is of the address family. If how is set to the specified socket can no longer receive data. The SVC is not cleared and remains intact. However, if data is subsequently received on the SVC, it is cleared. The connection is not completely down until either side executes a or with how set to or If how is set to or the SVC can no longer send or receive data and the SVC is cleared. The socket's resources are maintained so that data arriving prior to the call can still be read. SCTP Only: SCTP differs from TCP in that SCTP does not have half closed semantics. Hence the call for SCTP is an approximation of the TCP call and solves some different problems. Full TCP-compatibility is not provided, so developers porting TCP applications to SCTP may need to re-code sections that use You can achieve the same results as half closed semantics in SCTP by using SCTP streams. These are the possible SCTP operations: Disables further receive operations. No SCTP protocol action is taken. Disables further send operations and initiates the SCTP shutdown sequence. Disables further send and receive operations and initiates the SCTP shutdown sequence. The major difference between SCTP and TCP is that SCTP initiates immediate and full protocol shutdown, whereas TCP causes TCP to go into the half closed state. behaves the same for SCTP as TCP. The purpose of SCTP is to close the SCTP association while still leaving the socket descriptor open, so that the caller can receive back any data SCTP was unable to deliver. Note: SCTP is only available when the SCTP optional bundle is installed. X/Open Sockets Compilation Environment See xopen_networking(7). RETURN VALUE
Upon successful completion, returns 0; otherwise it returns -1 and is set to indicate the error. ERRORS
fails if any of the following conditions are encountered: s is not a valid file descriptor. The remote system or an intermediate system in the communications path does not support a protocol option sent by the local system. This option may have been set using a or call, or set as a system parameter. s is a valid file descriptor, but it is not a socket. The specified socket is not connected. The specified socket is not connected. The how argument is invalid. WARNINGS
Linking binary objects compiled to specification and binary objects compiled to specification to the same executable may result in unex- pected behavior, including application abnormal termination and unexpected socket errors. See xopen_networking(7) for details and remedy. FUTURE DIRECTION
Currently, the default behavior is the however, it might be changed to in a future release. At that time, any behavior that is incompati- ble with might be obsoleted. Applications that conform to the X/Open specification now will avoid migration problems (see xopen_network- ing(7)). AUTHOR
was developed by HP and the University of California, Berkeley. SEE ALSO
close(2), connect(2), socket(2), sctp(7), xopen_networking(7). STANDARDS CONFORMANCE
shutdown(2)
All times are GMT -4. The time now is 02:23 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy