C# - How To Fix Error "Only One Usage Of Each Socket Address Is Normally Permitted"
Jan 23, 2012
I have 1 process that acts as a server (TcpListener) and one or more processes that act as clients (TcpClient). The clients are sending Tcp requests to the server every 1-2 seconds to which the server responds with a result message.
In normal conditions the server will use TcpListener.Stop when it closes, but sometimes the server will crash (for whatever reason) and then this is not done. If I then try to restart then I get the following error:
"Only one usage of each socket address (protocol/network address/port) is normally permitted"
I only get this error when there are clients running who keep trying to connect despite the TcpListener is not there anymore (crashed).I don't get this error when I first manually close/kill all clients before restarting the server/TcpListener.I'm looking for an automatic recovery procedure that deals with this error/problem. How can this be done?Below you'll find code examples of the server and the client.BTW: Although the codes examples are in VB.NET, I can also handle C# code. That's why I tagged this question with both VB and C#.Code example for server/TcpListener:
Public Shared Sub Thread_TcpListener_GUI()
While True
Dim tcpClient As TcpClient = Nothing
Dim tcpListener As TcpListener = Nothing
SocketException was Unhandled: Only one usage of each socket address (protocol/network address/port) is normally permitted I get this error every time i click collect a second time.
So I'm opening a TCPListener on socket 8000. Debugging code, finding bugs, stopping the app and debugging again. Somehow I'm causing a problem such that it's not closing the TCP port, and it's causing a major problem such that even after I stop my program and restart it the code to open the TCP port the app is still throwing an exception, and it keeps happening until I reboot.It's going to be real hard to find the bug when I have to reboot each time to debug the app
I started to setup a Server and a Client for personal purpose. When I try to connect the Server by a computer inside a shared network, with local IPs, works but when I try to connect an external IP, doesn't work.[code]
I am writing a socket client into my application. I have multiple socket connections to make to different servers. ClientSocket(1).BeginConnect(endpoint1, AddressOf Connected, Nothing) ClientSocket(2).BeginConnect(endpoint2, AddressOf Connected, Nothing) Both clients call the connected sub... how do I know which one is which? Private Sub Connected(ByVal ar As IAsyncResult)
I am calling this function when a button is CLICKED and received the error; The name "The" is not permitted in this context. Valid expression are constants, constants expression, and (in some contexts) variables. Column names are not permitted.Unclosed quotation mark after the character string 'True)'.
The function is as follows;
Code: Private Sub Save() Dim conn As SqlConnection = GetDbConnection() Dim query As String
this is the first time I try to study the socket of .NET. I configed follow the tutorial here [URL] . Then I try to write some execute code for my project. I insert an "Add item" to a listbox after socket server receiving Data from client. However, the server doesn't execute my "Add item" code and it disconnect to the client? If I erase this code, everything is ok!
I have the following error for every cell: "the number in this cell is formatted as text or preceded by an apostrophe" To duplicate the error: I have to store this results that come from a Web services as strings array: Sample: (3 by 3 array)
The application was previously using GlobalMemoryStatus() and MEMORYSTATUS structure to retrieve memory information. But since, the Physical memory of the hardware in which the application runs is more than 2GB, the code was changed to use GlobalMemoryStatusEx() and MEMORYSTATUSEX structure. When this function was implemented and the struture was used its thrown compilation error: "error C2501: 'MEMORYSTATUSEX' : missing storage-class or type specifiers"How to solve this issue???
I'm working on an application that communicates to torque controllers on the factor floor. The user inputs an IP address and a port and clicks the btnConnect button to make the initial connection. Once that completes a KeepAlive message must be sent periodically to maintain communication with the torque controller. The initial connection works very well but a socket error (see below) grinds everything to a halt when the KeepAlive message is sent. I would appreiciate any ideas the readers may have on the root cause. I'm quite confused because basically the same code is use for both the initial connection and then the KeepAlive messages. I have pasted some of the code as well below.
My code works fine under xp pro but not under windows 7 ?System.Net.Sockets.SocketException = {"The system detected an invalid pointer address in attempting to use a pointer argument in a call"}
I wrote a Socket Client which will send the Socket Server some data and get some response from Server. This process will be running once in every 2 seconds.
Now what I need to know is How we can identify the connection lost between Server and Client?
I need this to be implemented in the Client side. If there is no connection then Client should automatically close the connection. Once the connection with the server is available in the next attempt it should connect automatically.
The name "Debit" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.
where i put the *'s i get the error "The parameter 'address' cannot be an empty string. Parameter name: address".
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Dim mail As New MailMessage() Dim SmtpServer As New SmtpClient
Below is my code, but when i send the message thru client socket i receive Specified argument was out of the range of valid values. Parameter name: size
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim serverStream As NetworkStream = clientSocket.GetStream() Dim outStream As Byte() = _ System.Text.Encoding.ASCII.GetBytes("0800822000000000000004000000000000000920092126012345001")
The problem is in the line that contains address.save(filename) the part address.save is underlined. When I backspace over the save, it gives me the options of what can go there and save isnt one of them. I am coping this out of a book.[code]...
I was getting this error "The server returned an address in response to the PASV command that is different than the address to which the FTP connection was made." when i trying to get the response from my partner ftp server, Google implies me to change my .UsePassive to false, when i do tat, my error turn to "The operation has timed out" on .GetRequestStream() line. I tried to change my time out values to -1, and it doesn't work as well.
System.Net.WebException was unhandled Message="The operation has timed out" Source="System" StackTrace:
[code]....
And the file is only few kb, by right its not suppose to that long of time to stream it And is this possible the problem cause from FTP server setting? I got no experience in setting FTP server setting so i got no idea whether my connection was restricted by the server?
Well I'm making a multiple email sender, and whenever I try and send it. I get this error.
************** Exception Text ************** System.FormatException: The specified string is not in the form required for an e-mail address. at System.Net.Mime.MailBnfHelper.ReadMailAddress(String data, Int32& offset, String& displayName) at System.Net.Mail.MailAddress.ParseValue(String address)
i'm using socket programming in vb.net 2005 and make a Server/Client windows application and it used in the network to multi user chat server and havent error and it work , but one BUG in server app : the Server app. work currently until the number of clients more than 30 and then it crashed . and error is "socket.exception" . now tell me what to do ??? it's very very important to me because the number of server's CRASH in on day more than 10 time and i end it and then run again and it's not good for my job .
It has been giving me a huge headache since last night. Anytime I try to add new record into my database,this error message keeps coming up: "Error: INSERT INTO Customer(Cust_ID, Name, Address, Username, Password) VALUE. I don't know where the problem lies.