socket excpetion

  • Thread starter Thread starter Guest
  • Start date Start date
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
 
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
 
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
 
Back
Top