socket excpetion

G

Guest

hi..
iam trying to have a proxy server which listens to the rquests comign from
port 80.
in tcp listener declaration i have give my system name n the port 80 to
listen to.
but when i run it comes to tcplistener.start it gives an excpetion:
"Only one usage of each socket address (protocol/network address/port) is
normally permitted"
plz this is urgnet.. give reply asap

Public Sub New(ByVal socket As Socket)
Me.clientSocket = socket
End Sub
Public Sub run()
Dim clientmessage As [String] = " "
Dim sURL As [String] = " "
Dim bytes As Integer = readmessage(read, clientSocket, clientmessage)
If bytes = 0 Then
Return
End If
Dim index1 As Integer = clientmessage.IndexOf(" "c)
Dim index2 As Integer = clientmessage.IndexOf(" "c, index1 + 1)
If index1 = -1 Or index2 = -1 Then
Throw New Exception
End If
Console.WriteLine("Connecting to Site: {0}",
clientmessage.Substring(index1 + 1, index2 - index1))
Console.WriteLine("Connection from {0}", clientSocket.RemoteEndPoint)

Dim part1 As String = clientmessage.Substring(index1 + 1, index2 -
index1)
Dim index3 As Integer = part1.IndexOf("/"c, index1 + 8)
Dim index4 As Integer = part1.IndexOf(" "c, index1 + 8)
Dim index5 As Integer = index4 - index3
sURL = part1.Substring(index1 + 4, part1.Length - index5 - 8)

Try
Dim IPHost As IPHostEntry = Dns.Resolve(sURL)
Console.WriteLine("Request resolved: ", IPHost.HostName)
Dim aliases As String() = IPHost.Aliases
Dim address As IPAddress() = IPHost.AddressList
Console.WriteLine(address(0))
Dim sEndpoint As New IPEndPoint(address(0), 80)
Dim IPsocket As New Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp)
IPsocket.Connect(sEndpoint)
If IPsocket.Connected Then
Console.WriteLine("Socket connect OK")
End If
Dim [GET] As String = clientmessage
Dim ByteGet As [Byte]() = ASCII.GetBytes([GET])
IPsocket.Send(ByteGet, ByteGet.Length, 0)
Dim rBytes As Int32 = IPsocket.Receive(RecvBytes,
RecvBytes.Length, 0)
Console.WriteLine("Recieved {0}", +rBytes)
'Buffer = RecvBytes;
Dim strRetPage As [String] = Nothing
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, rBytes)
While rBytes > 0
rBytes = IPsocket.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0,
rBytes)
End While
IPsocket.Shutdown(SocketShutdown.Both)
IPsocket.Close()
sendmessage(clientSocket, strRetPage)
Catch exc2 As Exception
Console.WriteLine(exc2.ToString())
End Try
End Sub 'run
Private Function readmessage(ByVal ByteArray() As Byte, ByRef s As
Socket, ByRef clientmessage As [String]) As Integer
Dim bytes As Integer = s.Receive(ByteArray, 1024, 0)
Dim messagefromclient As String = Encoding.ASCII.GetString(ByteArray)
clientmessage = CType(messagefromclient, [String])
Return bytes
End Function 'readmessage


Private Sub sendmessage(ByVal s As Socket, ByVal message As String)
Buffer = New [Byte](message.Length + 1) {}
Dim length As Integer = ASCII.GetBytes(message, 0, message.Length,
Buffer, 0)
s.Send(Buffer, length, 0)
End Sub 'sendmessage

'Entry point which delegates to C-style main Private Function
'Public Overloads Shared Sub Main()
' Main(System.Environment.GetCommandLineArgs())
'End Sub
Overloads Shared Sub Main(ByVal args() As String)
Const port As Integer = 80
Dim tcplistener As New TcpListener(IPAddress.Parse("192.168.0.66"),
port)
Console.WriteLine("Listening on port {0}", +port)
' tcplistener.Stop()
tcplistener.Start()
While True
Dim socket As Socket = tcplistener.AcceptSocket()
Dim webproxy As New WebProxy2(socket)
Dim thread As New Thread(New ThreadStart(AddressOf webproxy.run))
thread.Start()
End While
End Sub 'Main
Was this post helpful to you?

Why should I rate a post?



Expand AllCollapse All


Manage Your Profile |Legal |Contact Us |MSDN Flash Newsletter
 
T

Tim Haughton

Phadnis said:
hi..
iam trying to have a proxy server which listens to the rquests comign from
port 80.
in tcp listener declaration i have give my system name n the port 80 to
listen to.
but when i run it comes to tcplistener.start it gives an excpetion:
"Only one usage of each socket address (protocol/network address/port) is
normally permitted"

Do you have IIS running?

--
Regards,

Tim Haughton

Agitek
http://agitek.co.uk
http://blogitek.com/timhaughton
 
G

Guest

hi
thks for ur reply..
yes the iis is running..

but my application is vb.net ..now in the code which i mentioned below if
iam tyring to listen to anyother port like 8080 etc etc.. it listens to them.
but when i give the port as 80 it does not listen to it and gives the
exception( the code is given in my first post ).
plz reply asap.. asits urgent
 

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