Sponsored Content
Top Forums Programming Accept (sockets) queuing up connection requests Post 302509743 by Corona688 on Thursday 31st of March 2011 03:30:56 PM
Old 03-31-2011
Quote:
Originally Posted by Kam5FCC
Hi Corona,
Thanks for the reply.

What you are saying is correct if I was setting up a protocol and ack'ing all over the place. But what the boss wanted was a client that dumped off the data and left. Sooo....
TCP doesn't do that. The connecting process itself makes you wait.

Making your queue small will just prevent most of your clients from connecting at all when the server's busy, imagine russian roulette with 5/6 cylinders full.

Two ways to solve this.

1) Create threads to handle connections. The main program just does accept(); create_thread(); accept(); create_thread(); The threads do the communication. The clients won't have to wait for client1 to finish before they can connect. They might still wait a little just because connections take time to make -- you can't avoid that with TCP. And if the server's down, they'll wait an entire 10 minutes before giving up.

2) Use a connectionless protocol, probably UDP. Clients won't have to connect at all, just throwing a packet towards IP address 1.2.3.4 on port 5678 does the job. They won't even wait for the packet to get through, they won't even know if it gets through. The server can read and reply at its leisure.

Last edited by Corona688; 03-31-2011 at 04:41 PM..
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Need to log http requests

Hi folks, I am trying to build this GUI application that will perform some http requests to a specific server. Basically I will use curl to "pretend" that it is a browser a sending an http request from a form. My http knowledge is very low, and the site is tricky, but I think if I could... (3 Replies)
Discussion started by: fundidor
3 Replies

2. UNIX for Advanced & Expert Users

udp sockets of dns requests not showing anywhere...

Dear guys, I am facing the most weird problem I have ever encountered! Ok here is the situation: From my dns query.log file - it is generated using usual bind9 logging: logging { channel query.log { file "/var/log/bind9/query.log" versions 10 size 2m; severity debug 2;... (0 Replies)
Discussion started by: angeloio
0 Replies

3. Solaris

ip details for interface requests.

Hi All, I have an interface port configured to a FBOL server. This port receives requests from various hosts. I want to know at any moment of time ip addresses of all those hosts from which the requests are coming in. Please help me with command/script. (2 Replies)
Discussion started by: digitalrg
2 Replies

4. Solaris

Solaris 10 ftp connection problem (connection refused, connection timed out)

Hi everyone, I am hoping anyone of you could help me in this weird problem we have in 1 of our Solaris 10 servers. Lately, we have been having some ftp problems in this server. Though it can ping any server within the network, it seems that it can only ftp to a select few. For most servers, the... (4 Replies)
Discussion started by: labdakos
4 Replies

5. HP-UX

Some I/O requests to this LV are waiting

Hi All I have a blade BL860c running on a C7000 chassis, in which is connected to a NetApp, so lately I am having I/O issues, and dmesg as well as syslog.log is reporting the following: /dev/vg01/lvol2 file system file data error in dev/block 0/55892768 Page I/O error occurred while paging... (2 Replies)
Discussion started by: fretagi
2 Replies

6. Shell Programming and Scripting

How to ignore requests in dhcpd?

Hi there, I setup a dhcp server on a debian. It is designed to only assign ip addresses to a list of known hosts. The config file looks like : log-facility local6; ignore unknown-clients; subnet 172.16.0.0 netmask 255.255.0.0 { } host 1 { hardware ethernet 00:03:2d:xx:xx:xx; fixed-address... (3 Replies)
Discussion started by: chebarbudo
3 Replies

7. UNIX for Advanced & Expert Users

How keep running a program n an another computer via a connection ssh when the connection is closed?

Hi everybody, I am running a program on a supercomputer via my personal computer through a ssh connection. My program take more than a day to run, so when I left work with my PC I stop the connection with the supercomputer and the program stop. I am wondering if someone know how I can manage... (2 Replies)
Discussion started by: TomTomGre
2 Replies

8. AIX

AIX firewall accept established connection

I'm trying to configure a firewall for AIX to accept incoming connections on ports 22 and 443 and deny everything else. All is ok; the server accepts connections only on 22 and 443, but after that I also need to accept all outgoing connections -- ssh and telnet, for example. So I started with ... (0 Replies)
Discussion started by: Michael1457
0 Replies
GEMS-SERVER(1)							gems documentation						    GEMS-SERVER(1)

NAME
gems-server - Transmit a shell session in real time. SYNOPSIS
gems-server [-ip ip] [-port p] [-maxconn n] [-wait m] [-log dest] [-noscript] [-script_bin script] gems-server -h | -v DESCRIPTION
Transmits a shell session to be shown in real time in various different computers or terminals. gems-server transmits data in real time to clients via a network connection. Each one of these clients must run the gems-client(1) program to establish connection and receive the transmitted data. Clients can connect and disconnect at any given time, but of course they will only receive the data that is transmitted while they are connected (just like a radio transmission/reception system). The gems system is normally used to transmit a console session and show it in various computers at the same time, but it is also possible to transmit any other kind of data. OPTIONS
-ip IP address where connections will be accepted. -port TCP port. Default: 6666. -maxconn Do not accept more than n simultaneous clients. Default: 25. -wait Wait until m clients are connected before starting the transmission. This is useful to ensure that the first m clients will receive all data transmitted. The default behavior is to start transmission immediately, without waiting for client connections. -log By default, the server does not write log messages. This option configures the destination of logs. The dest argument can be `sys- log' (to log through syslogd(8)), `stderr' (to log through standard error output), or it can be an arbitrary filename (log messages will be appended to the file, if it exists). -noscript By default, the server executes the script(1) program to take terminal data and transmit it. When this option is used the server will not run script, and data will be read form standard input. -script_bin Specifies the location of the script(1). program. Default: /usr/bin/script. -h Show a short help message. -v Show version information. FILES
/var/lock/gems-server.PORT Lock file. gems-server creates this file on initialization and deletes it on exit. PORT is replaced by the TCP port used. gems- server will not run if this file is already present in the system. AUTHORS
Diego Essaya <dessaya@fi.uba.ar> Emiliano Castagnari <ecastag@fi.uba.ar> SEE ALSO
gems-client(1), script(1), syslogd(8) gems AUGUST 2004 GEMS-SERVER(1)
All times are GMT -4. The time now is 01:25 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy