473,387 Members | 1,790 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Q: simple sockets, bind, and socket error 10048

Hello Python community,

I am trying the echo-client and echo-server examples in Chapter 10,
"Programming Python" by Mark Lutz.
It is probably the most simple sockets sample: A socket server just
echoing the socket clients' requests.

The program works so far. I first start the server in one dos box,
then the client in another dos box on my machine.

However, I wonder why the client always gets a new port. This is
printed in the server's dos box:

g:\WingIDE\profiles\Johannes Eble\sock>python echo-server.py
Server connected by ('127.0.0.1', 1048)
Server connected by ('127.0.0.1', 1049)
Server connected by ('127.0.0.1', 1050)
Server connected by ('127.0.0.1', 1056)
Server connected by ('127.0.0.1', 1057)
Server connected by ('127.0.0.1', 1058)

Note that I start a client one by one (in the same client's dos box).
It seems that the older port numbers can't be used anymore even if the
client is closing the connection and terminating.

I have tried to bind the client to port 4000. I can start the client
one time without an error. But the second time I get a socket error:

g:\WingIDE\profiles\Johannes Eble\sock>python echo-client.py
Client has socket address '127.0.0.1' 4000
Client received: 'Echo=>Hello network world'

g:\WingIDE\profiles\Johannes Eble\sock>python echo-client.py
Traceback (most recent call last):
File "echo-client.py", line 18, in ?
sockobj.connect((serverHost, serverPort))
File "<string>", line 1, in connect
socket.error: (10048, 'Address already in use')
I do not understand why the port is still in use. Why can't I define a
constant socket address for my client? Doesn't Python release the
client's port address as soon as the client calls close() on its
socket object or, at latest, when the client process terminates? I
have tried a

sockobj.shutdown(2)

on the client (before close() ) without an effect.
Any help would be great.
Regards
Johannes

Jul 18 '05 #1
1 9003
In article <3f**************@news.online.de>, Johannes Eble wrote:
Note that I start a client one by one (in the same client's dos
box). It seems that the older port numbers can't be used
anymore even if the client is closing the connection and
terminating.
The port can't be used because it's still in use. When you
close a TCP connection, it doesn't go away immediately. It
goes into a "wait" state for several minutes just in case there
are packets belonging to that connection wandering around the
internet. If you want to skip that waiting state (a decision
which a small risk associated), set the SO_REUSEADDR option on
the socket.
I do not understand why the port is still in use.


Stevens chapter 18:

http://www.amazon.com/exec/obidos/AS...800181-0657431

--
Grant Edwards grante Yow! I like the way ONLY
at their mouths move... They
visi.com look like DYING OYSTERS
Jul 18 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: Clarence Gardner | last post by:
I've got a problem that I don't see how to program around. A socket server that was running fine, today started getting an exception from the bind() call (errno 22, Invalid argument) and yet the...
0
by: Darren Thomas | last post by:
Dear all, I have written a TCP server as a windows service that accepts connections using the System.Net.Sockets.Socket class. I use the various asynchronous methods in the socket class. I'm...
1
by: Guillaume Kaddouch | last post by:
Hi, I am in trouble since many days because i'm facing a problem that i can't solve. I used to play with RAW socket under Linux, but the near same code ported on Windows doesn't works, and i...
4
by: 0to60 | last post by:
I have a question about socket programming in general. Exactly what happens behind the scenes when I one socket connects to a different socket in listen mode? Using the dotnet framework, I...
0
by: Gregory Hassett | last post by:
Hello, I want to periodically send a TCP packet to a peer, always from the same source port. That is, each packet will come from my local ip address, port 8801, and go to the peer's ip address,...
1
by: verge | last post by:
hello everyone! how's it going? like everyone in here im in need of some help and good friendship along the way...take a look at this: //MODIFIED SO IT DEALS WITH WINDOWS FTP USING ACTIVE...
2
by: Vitali Gontsharuk | last post by:
Hi! I have a problem programming a simple client-server game, which is called pingpong ;-) The final program will first be started as a server (nr. 2) and then as a client. The client then...
0
by: J008 | last post by:
Just looking for some insight as to why the callback "BeginReceiveFromCallback" is not being called in my "Receive" Subroutine below (when I call BeginReceiveFrom). I am trying to read data...
1
by: MaheBytes | last post by:
I have been facing a problem with UDP socket programming. I have to reuse port number for two different IP address. I am actually using SO_REUSEADD. I have no problem with debug version but with...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.