Hi Daniel,
I have enocountered the same problem as you. My client application has a
public fuction which does "connect -> send -> close" operation to a remote
listening application. At first, everything seems fine, we even succeeded
sending 10,000 calls from the client application. From the netstat, it shows
that the client ports get recycled very neatly.
However, when we started having multiple client applications connecting to
the same server, problem started. Error message "only one usage of each
socket address" start to appear.
It has been a month since you posted. Is it solved?
Rdgs,
Vin
"Daniel" wrote:
after opening socket, sending data then closing socket 3000 times i get
"Only one usage of each socket address"
what am i doing wrong? is there some thing else i need to do to free up the
socket after i send data into it?
I simply want to open socket, send data, close socket and have the server
just handle one client thread to recieve connection, recieve data, and close
socket
here is my client:
for(int i=0;i<10000;i++)
{
TcpClient myclient;
myclient = new TcpClient("localhost",8888);
NetworkStream networkStream ;
networkStream = myclient.GetStream();
StreamWriter streamWriter ;
streamWriter = new StreamWriter(networkStream);
string strData = "";
strData += "0\0";
streamWriter.WriteLine(strData);
streamWriter.Flush();
streamWriter.Close() ;
networkStream.Close();
myclient.Close();
int i23 = 23+ 23;
}
here is my server:
using System;
using System.Net.Sockets;
using System.IO ;
public class Echoserver
{
public static void Main()
{
TcpListener tcpListener = new TcpListener(8888);
tcpListener.Start();
Console.WriteLine("Server Started") ;
while(true)
{
Socket socketForClient = tcpListener.AcceptSocket();
try
{
if(socketForClient.Connected)
{
Console.WriteLine("Client connected");
NetworkStream networkStream = new NetworkStream(socketForClient);
StreamReader streamReader = new StreamReader(networkStream);
string line = streamReader.ReadLine();
Console.WriteLine("Read:" +line);
}
socketForClient.Close();
Console.WriteLine("Client disconnected");
}
catch(Exception e)
{
Console.WriteLine(e.ToString()) ;
}
}
}
}