VS 2008 Async Socket Connections - Clear Out No Longer Useful Sockets From The Server?
Dec 18, 2009
I have been developing an async socket connection server and client program. I have been testing it, and noticed that if I connect to the server from my client and then disconnect. Upon reconnecting I am on a different port(local IP still). This is fine, however when I go to send a message, and the server trys to update all the clients, it eventually hits clients that do not exist anymore. I get the SocketException 10054, and upon connecting/disconnecting enough, it no longer works at all. My question is how do I clear out these no longer useful sockets from the server? I am doing currentsocket.Shutdown(SocketShutDown.Both); and then a currentsocket.Close(); after that. When a user disconnects.
[Code]...
View 1 Replies
ADVERTISEMENT
Jul 25, 2011
I'm using vb .net 2008 with 3.5 framework. (the following 2 classes are put in a DLL that i import in a main application)
Server class:
Code:
Imports System.Xml
Imports System.Net.Sockets
Imports System.Text
Imports System.Net
[code]....
Basically in my main application i am instantiating the client class from this dll, as well as the server one. On the client form i got a "send data" (SendFISA sub) and a "connect" button. After connecting the client and clicking on the "send data" i am sending to the server a string formed of some information created when instantiating the client class from the dll (i can't make that type of data public, but i'm just using a constructor to assign values to a class object, nothing special).
Now, when the server receives the data sent by "send data" button click it responds with "PKG_SENT" corresponding to the "FISASENT" string terminator(in the module) of the string that was sent. The "WRONG_MSG" constant is for when the string terminator is different from the 2 from above.
On the local disk, if the server cannot be reached, the client saves an xml file with this data. In the dll i made a timer that ticks every 5 seconds and checks to see if there is any xml file on the disk and sends it to the server if the connection is ok (trimiteXML sub). The server would respond with "XML_SENT" corresponding to the string terminator "XMLSENT"(in the module) appended to the read string from the xml file. After the file is sent it is deleted from the local dir.
The problem occurs when i click "send data" AND there are XML files to be sent from the disk. I believe they are interpreted by the server somehow at the same time because the message is neither "PKG_SENT" nor "XML_SENT", but it becomes a combination of the "WRONG_MSG_TYPE" and "XML_SENT", "XML_SENTG_TYPE". I have no idea why this is happening and i basically want the socket to wait with sending the files from the disks until the "send data" finishes.
View 9 Replies
Sep 2, 2009
a small question: what is the difference between sync and async connections in a tcp/ip client/server application?
View 1 Replies
Jun 16, 2009
I'm trying to setup an asynchronous client and I can send/receive one command and response, but when I try to send the second command, the command is sent (I verified by code inspection), but I am getting no response.
Heres the code, a majority of it is from the Microsoft example.
Option Explicit On
Imports System
Imports System.Net
[Code].....
View 1 Replies
Dec 17, 2008
Alright Simple question I got my main thread running Form Load and I make a socket then called BeginAcceptthen I pass AR to a Function that handles the Accept and creates a whole another sockets out of it and then loops for recv then when it gets everything closes then exits the functionbut how do I make the Socket from Form_Load run BeginAccept again to wait for another connection.. Do I call that command and Point it to the same Block thats Currently running, The block that Handles the AR Param??
View 3 Replies
Oct 27, 2009
Here's the code on the sending side of my sockets:
Private Sub Send(ByRef Buffer() As Byte)
Dim obj_StateObject As New StateObject
obj_StateObject.WorkSocket = m_tmpSocket
[code].....
View 1 Replies
Apr 9, 2011
I'm using .BeginConnect with an AsyncCallBack and for some odd reason when I try to add a string to a textbox using the sub below, from a routine within the socket, it just does not work. It's not stating an invoke is required either.Private Delegate Sub DelegateAddText(ByRef theText As String, ByRef AddReturn As Boolean, ByRef AddPrefix As Boolean) Public Sub AddText(ByRef theText As String, ByRef AddReturn As Boolean, ByRef AddPrefix As Boolean)
[Code]...
as a side note which would be more efficient ... Indexing sockets and passing indexes through routines, or spawning classes. I realize spawning may use more memory but is it faster than indexing?
View 2 Replies
Jan 5, 2012
I coded a small tcp server/client software implementing the async methods of the socket object. In order to keep track and control of the transfered data on both sides, I decided to wrap the bytes to be transfered into small 65 000 bytes packets, sent one after each other, in varying order.In most cases, it works perfectly, and it is impressively fast. However, when I want to transfer larger data than my usual requests, say like a dozen megabytes, crippling problems start to appear, out of shit.Effectively, it seems that somehow when executed without pauses, the server sends the packets too fast, or that the client receives it too slowly. However, if I put the SendAsync method's thread to sleep for like 100ms before sendingthe next packet, everything arrives without problem on the client.[code]
View 1 Replies
Mar 26, 2010
I am trying to use the code from Microsoft for an Async Socket connection. It appears the listener runs in the main thread locking the GUI. I am new at both socket connections and multi-threading all at the same time. Having a hard time getting my mind wrapped around this all at once.
[Co0de]...
View 1 Replies
Jul 19, 2011
Using VB.Net and SQL Server 2008 R2: I have recently had a database that using sp_who2 reflects a connection ".Net SqlClient Data Provider" is still active even though the .Net application has closed and disposed of all connections.
[Code]...
View 1 Replies
Feb 23, 2011
I have a chat program using System.Net.Sockets.Socket that works perfectly over LAN.My question is - will this same program work over the net with little or no modification and if so do i provide the client with the IP of my machine or of my router and use port forwardin
View 1 Replies
Nov 14, 2010
OK here is some code I nicked from web and I have changed some things, it works but only accepting one client, how do I make this accept multiple clients?
[Code]...
View 2 Replies
Sep 8, 2011
We are using VB.NET 2010. Our application receives client connection through socket, and currently each client has its own thread and socket. We would like to have multiple socket connections per thread, but we are having a problem doing it.
Below is our current program where each client has itsown tread and socket.
Public class frmMyForm:
Private Sub AcceptSocket(ByVal Sock As SocketTools.SocketWrench)
Try
Dim oSession As SessionClass
Dim oThread As Threading.Thread
[Code] .....
View 1 Replies
Jul 2, 2011
Im writing a small application that need to make up to 300 socket connections at the same time. However i'm pretty confused on how to approach this. My first theory is to have my main thread to manually fire up 300 new threads that each handle all that needs to be done. Another theory is to fire up lets say 10 threads that makes 30 async connections. My last theory is to have my mainthread work with all 300 async connections together with everything else. The question to this is what would be the most effective way to go to save resources and maintain speed.
View 1 Replies
Sep 15, 2009
The MSDN Documentation in question can be found here:[URL].. It offers the following code snippet example:
[Code]...
View 2 Replies
Mar 2, 2012
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)
View 3 Replies
Sep 18, 2009
Is there a way to determine if a System.Net.Sockets.Socket has sent data that has not been received/read by a specified remote endpoint with a connectionless protocol?It never hurts to try.
View 1 Replies
Sep 22, 2009
i have lots of confused ideas like should you transfer files using tcp? Example: I was thinking, I connect to server from client, open file in binary, division by packet size(bytes), send first packet to server, get request if file was delivered succesfully, send next packet. If I do it this way i would need something to know/increase packet size.
View 5 Replies
May 21, 2011
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.
View 1 Replies
Aug 10, 2011
I am building a client-server type applications and they are communicating over sockets. This is the first time I am doing such a program and I have been learning off a web example and thought I understood it all but it would appear I am missing something as it starts to work then errors. Here is what I have:
VB
Dim serverSocket As New TcpListener(ListeningPort)
Dim clientSocket As TcpClient
Dim netStream As NetworkStream
Dim BytesFrom(1024) As Byte
Dim DataFromClient As String
[Code] .....
All of the above works and if I open up a telnet command window I can connect to my machine running this code on my specified port and in the command prompt window 'IDENTIFY' appears as it should from the above code. But it then gets to this block an errors on the second line:
VB
'RECEIVE FROM CLIENT
netStream = clientSocket.GetStream()
netStream.Read(BytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
DataFromClient = System.Text.Encoding.ASCII.GetString(BytesFrom)
Now as far as I can tell it shouldn't be processing the first line
[ netStream = clientSocket.GetStream() ]
Until I send something back from the client because then going on to the second line its trying to process something that isn't there yet.
The actual error I get is:
Specified argument was out of the range of valid values. Parameter name: size
On the line:
netStream.Read(BytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
View 8 Replies
Aug 26, 2010
I have created a Client that can send and receive data via TCP sockets. The objects stored on the serverside are the *exact* same object used for the client. They use the same send and receive protocols.
Now, when i send a string from the server to the client , it does precisely what it should do. However when I send a string to the server.... I do receive the string as an equal length of NULL characters. I run the server and client locally.
Basicly what can influence the behaviour between two completely identical objects performing the exact same task? I wonder if there is some socketflag issue if the TCPlistener.accept function returns a completely different setup then the one I R used to.
(if it is of any interest, the send protocol is asynchronious)
View 3 Replies
Jan 29, 2010
We have a small service shows continuous nonpaged pool bytes increase from the moment it is started. This is only on a 2008 server (all the others work fine).
The service basically connects a socket to a client to see if it's successful and then closes (most code omitted):
[Code]...
View 3 Replies
Jan 25, 2011
I'm trying to update an application from vb6 to vb.net. The orig app used the winsock control. Unfortunately I can't nor do I want to use it in the re-write. Are there any decent public classes with events that wrap the Socket class?
View 1 Replies
Jun 10, 2012
I'm attempting to discard the contents of a System.Net.Sockets.Socket send buffer using theSocket.IOControl(IOControlCode.Flush, .... Does anybody know whether VB.NET supports this command? I've tried supplying 'Nothing' and 'Nothing' for both required parameters, also empty and populated byte arrays in combination with 'Nothing' for both required parameters, but I consistently get an 'Invalid argument' exception. I've tried a web search for an answer, but the only mention I've found was a question asked about 8 years ago, with still no answer.
View 1 Replies
Apr 7, 2010
I am using Async socket class to handle HTTP data. The OnRecieve event handler looks like this:
Private Sub sck_onDataArrival(ByVal sData() As Byte, ByVal BytesTotal As Integer) Handles sck.onDataArrival
Try
Dim ms As New IO.MemoryStream(sData)
Dim returnImage As Image = Image.FromStream(ms)
Picturebox1.Image = returnImage
Catch ex As Exception
Debug.Print(ex.ToString)
End Try
End Sub
I realize this will not work because the byte array still contains the header information from the response from the server. How to strip this data without converting the byte array to a string. I need to strip the header response information and just be left with the image data and from there convert that data into a stream so the stream can be loaded into an image and displayed in my picturebox.
View 8 Replies
Feb 2, 2011
I am facing problem in asynchronous socket communication.
1)I wanted to perform connect(from client to server) operation on enter button and send the data whatever client want to send and disconnect from server. And again client should get connect to server whenever client wanted to send data. this is the mechanism.
i.e how to reuse the socket.
2)Again Server should able to send the data to client.
View 5 Replies
Jul 25, 2010
I have a server which has around 300+ users on it. Though the problem is that its coded in VB6, and if somebody has a bad ping, everybody has a bad ping. I need a tunneling server which will tunnel the incoming and outgoing connections and make there ping appear to be 0 in the server. Client to Server, Server to Client.
View 1 Replies
Aug 3, 2009
Event type clr20r3 p3 4a5c12c0 system.net.sockets.socket Exception and Application crash on some system. while running well on others. i go thorugh many forms and search a lot on google but not able to resolve the issue.
[Code]...
View 1 Replies
Oct 26, 2011
I made a simple TCP server (I've found the example on the web) in VB to receive data from about 40 TCP clients.The clients are not synchronized but sends data about every 18 minutes; the problem is sometimes several clients sends data at the same moment, so I can't receive data.I also made a second program that reads the data (server program writes data on a file, read from the second program) scheduled.
My question is this: I've seen on the web examples about Multithreaded Server Socket Program, so I suppose this could manage my 40 clients (but now the clients are syncronized and send data at the same time in client mode) or is better get data (I have a central client that asks data to all 40 devices in server mode)?
Second question: can I make a single program where I run both TCP client and TCP server at the same time?
View 1 Replies
Mar 11, 2011
I searched on google for these terms : "How to see all open connections in vb.net" and it should be for a server im running and it would be like to see witch users are connected (ip) and then if i type in the console -disconnect ip then the user will be disconnected from the server but is this technical posibble ?
View 4 Replies