Writing client-server sysetem using VB.NET

C

Chin Fui

I am now doing my final year project using VB.NET. The project is about
implement a multiplayer network game. But now I am stuck in the connection
part, no idea in how to start to write the network application. Hope anyone
can give me any hint or help...

Thank you...

Chin Fui
 
A

Anand Balasubramanian

Hi,
you can use the System.net.sockets namespace to do client server
programming. The following link has some information
http://www.eggheadcafe.com/articles/20020323.asp

You can convert the above sample into a server that communicates with
multiple clients using the following code


Main Module
===========
Imports System.Net.Sockets
Imports System.Text
Class TCPSrv
Shared Sub Main()
' Must listen on correct port- must be same as port client wants to
connect on.
Const portNumber As Integer = 8000
Dim tcpListener As New TcpListener(portNumber)
Dim ct As Integer

tcpListener.Start()
Console.WriteLine("Waiting for connection...")
Try
'Accept the pending client connection and return 'a
TcpClient initialized for communication.

ct = 0
While (True)

Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
Console.WriteLine("Connection accepted.")

Dim tmp As New WorkerThread(tcpClient, ct)
ct += 1

Dim thrd As New System.Threading.Thread(AddressOf
tmp.workerMethod)
thrd.Start()

End While

Catch e As Exception
Console.WriteLine(e.ToString())
Console.ReadLine()
End Try
End Sub
End Class

The WorkerThread Class
======================
Imports System.Net.Sockets
Imports System.Text


Public Class WorkerThread
Private tcpClient As tcpClient
Private clientnumber As Integer

Sub New(ByRef tcpCli As tcpClient, ByVal ct As Integer)
tcpClient = tcpCli
clientnumber = ct
End Sub

Sub workerMethod()
Dim networkStream As NetworkStream = tcpClient.GetStream()
' Read the stream into a byte array
Dim bytes(tcpClient.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
' Return the data received from the client to the console.
Dim clientdata As String = Encoding.ASCII.GetString(bytes)
Console.WriteLine(("Client sent: " + clientdata))
Dim responseString As String = "Connected to server."
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
networkStream.Write(sendBytes, 0, sendBytes.Length)
Console.WriteLine(("Message Sent /> : " + responseString + "Client
number" + clientnumber.ToString))
'Any communication with the remote client using the TcpClient can
go here.
'Close TcpListener and TcpClient.
tcpClient.Close()
Console.WriteLine("exit")
End Sub
End Class

I hope this helps.
Thanks




Anand Balasubramanian
Microsoft, Visual Basic .NET

This posting is provided "AS IS" with no warranties, and confers no rights.
Please reply to newsgroups only. Thanks
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top