Page 1 of 1

Socket programing with Cobra

PostPosted: Mon Mar 15, 2010 4:54 pm
by memray
Hi,
I'm a newbie to cobra but I have a very strong background in C++ and python.

I have a very basic question,
Does cobra support Socket? and if so, can you provide me a sample code so I can start using that?

Thank you
Memphis

Re: Socket programing with Cobra

PostPosted: Mon Mar 15, 2010 5:37 pm
by Charles
Cobra inherits a very rich base class library (BCL) by running on top of .NET or Mono. There are also many third party libraries available. So you can generally find what you need for a topic like this by searching for "C# socket" and adapting the code to Cobra.

See http://www.google.com/search?hl=en&q=C%23+socket

In short, yes there is a System.Net.Sockets namespace with classes like TCPListener, Socket and NetworkStream. You'll find details in the above pages.

You can also get a reference to a class with a search like "msdn TCPListener" or searching the MSDN site directly.

Btw if all you need is to download the contents of a URL, see the Download Sample.

Re: Socket programing with Cobra

PostPosted: Mon Mar 15, 2010 10:06 pm
by hopscc
As an idea of the 'flavor' heres the client and server examples from the 3rd link on the seach page given above converted to cobra

Server:
# Sample for a Server using .Net sockets
# convert from <!-- m --><a class="postlink" href="http://www.c-sharpcorner.com/UploadFile/dottys/SocketProgDTRP11222005023030AM/SocketProgDTRP.aspx">http://www.c-sharpcorner.com/UploadFile ... gDTRP.aspx</a><!-- m -->
#
use System.IO
use System.Net
use System.Net.Sockets

class AsynchIOServer
def main is shared
tcpListener = TcpListener(1032)
tcpListener.start
socketForClient = tcpListener.acceptSocket
if socketForClient.connected
#Console.writeLine("Client connected")
print "Client connected"
networkStream = NetworkStream(socketForClient)
streamWriter = System.IO.StreamWriter(networkStream)
streamReader = System.IO.StreamReader(networkStream)
theString = "Sending"
streamWriter.writeLine(theString)
#Console.writeLine(theString)
print theString
streamWriter.flush
theString = streamReader.readLine to !
#Console.writeLine(theString)
print theString
streamReader.close
networkStream.close
streamWriter.close

socketForClient.close
#Console.WriteLine("Exiting...")
print "Exiting..."
[/code]

Client:
[cobra]# Sample for a Server using .Net sockets
# convert from <!-- m --><a class="postlink" href="http://www.c-sharpcorner.com/UploadFile/dottys/SocketProgDTRP11222005023030AM/SocketProgDTRP.aspx">http://www.c-sharpcorner.com/UploadFile ... gDTRP.aspx</a><!-- m -->
#
use System.IO
use System.Net
use System.Net.Sockets

class Client

def main is shared
#args = CobraCore.commandLineArgs
try
socketForServer = TcpClient("localHost", 1032)
catch
#Console.WriteLine("Failed to connect to server at 0:999", "localhost")
print "Failed to connect to server at 0:999", "localhost"
return

networkStream = socketForServer.getStream
streamReader = System.IO.StreamReader(networkStream)
streamWriter = System.IO.StreamWriter(networkStream)
try
outputString as String?
# read the data from the host and display it
outputString = streamReader.readLine
print outputString # Console.WriteLine(outputString)
streamWriter.writeLine("Client Message")
print "Client Message" # Console.WriteLine("Client Message")
streamWriter.flush
catch
print "Exception reading from Server" #Console.WriteLine("Exception reading from Server")

# tidy up
networkStream.close