Csharp/C Sharp by API/System.Net.Sockets/TcpClient
new TcpClient( String ip, int port)
using System;
using System.IO;
using System.Net.Sockets;
class MainClass
{
const int echoPort = 7;
[STAThread]
static void Main(string[] args)
{
using ( TcpClient tc = new TcpClient( "localhost", echoPort ) )
{
NetworkStream ns = tc.GetStream();
StreamWriter sw = new StreamWriter( ns );
StreamReader sr = new StreamReader( ns );
sw.WriteLine( "test message" );
sw.Flush();
System.Console.WriteLine( sr.ReadLine() );
}
}
}
TcpClient.Connect
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class MainClass
{
[STAThread]
static void Main(string[] args)
{
TcpClient MyClient = new TcpClient();
MyClient.Connect("localhost", 10000);
NetworkStream MyNetStream = MyClient.GetStream();
if(MyNetStream.CanWrite && MyNetStream.CanRead)
{
Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there");
MyNetStream.Write(sendBytes, 0, sendBytes.Length);
byte[] bytes = new byte[MyClient.ReceiveBufferSize];
MyNetStream.Read(bytes, 0, (int) MyClient.ReceiveBufferSize);
string returndata = Encoding.ASCII.GetString(bytes);
Console.WriteLine("This is what the host returned to you: " + returndata);
}else if (!MyNetStream.CanRead) {
Console.WriteLine("You can not write data to this stream");
MyClient.Close();
}else if (!MyNetStream.CanWrite)
{
Console.WriteLine("You can not read data from this stream");
MyClient.Close();
}
}
}
TcpClient.GetStream()
/*
C# Network Programming
by Richard Blum
Publisher: Sybex
ISBN: 0782141765
*/
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class TcpListenerSample
{
public static void Main()
{
int recv;
byte[] data = new byte[1024];
TcpListener newsock = new TcpListener(9050);
newsock.Start();
Console.WriteLine("Waiting for a client...");
TcpClient client = newsock.AcceptTcpClient();
NetworkStream ns = client.GetStream();
string welcome = "Welcome to my test server";
data = Encoding.ASCII.GetBytes(welcome);
ns.Write(data, 0, data.Length);
while(true)
{
data = new byte[1024];
recv = ns.Read(data, 0, data.Length);
if (recv == 0)
break;
Console.WriteLine(
Encoding.ASCII.GetString(data, 0, recv));
ns.Write(data, 0, recv);
}
ns.Close();
client.Close();
newsock.Stop();
}
}