using System; using System.Net; using System.Net.Sockets; using System.Text; public class OddUdpClient { public static void Main() { byte[] data = new byte[1024]; string input, stringData; IPEndPoint ipep = new IPEndPoint( IPAddress.Parse("127.0.0.1"), 9050); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); server.Connect(ipep); string welcome = "Hello, are you there?"; data = Encoding.ASCII.GetBytes(welcome); server.Send(data); data = new byte[1024]; int recv = server.Receive(data); Console.WriteLine("Message received from {0}:", ipep.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); while(true) { input = Console.ReadLine(); if (input == "exit") break; server.Send(Encoding.ASCII.GetBytes(input)); data = new byte[1024]; recv = server.Receive(data); stringData = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(stringData); } Console.WriteLine("Stopping client"); server.Close(); } }
C# Network
Simple Udp Client
/* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765 */ using System; using System.Net; using System.Net.Sockets; using System.Text; public class SimpleUdpClient { public static void Main() { byte[] data = new byte[1024]; string input, stringData; IPEndPoint ipep = new IPEndPoint( IPAddress.Parse("127.0.0.1"), 9050); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); string welcome = "Hello, are you there?"; data = Encoding.ASCII.GetBytes(welcome); server.SendTo(data, data.Length, SocketFlags.None, ipep); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint Remote = (EndPoint)sender; data = new byte[1024]; int recv = server.ReceiveFrom(data, ref Remote); Console.WriteLine("Message received from {0}:", Remote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); while(true) { input = Console.ReadLine(); if (input == "exit") break; server.SendTo(Encoding.ASCII.GetBytes(input), Remote); data = new byte[1024]; recv = server.ReceiveFrom(data, ref Remote); stringData = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(stringData); } Console.WriteLine("Stopping client"); server.Close(); } }
Time out Udp Client
/* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765 */ using System; using System.Net; using System.Net.Sockets; using System.Text; public class TimeoutUdpClient { public static void Main() { byte[] data = new byte[1024]; string input, stringData; int recv; IPEndPoint ipep = new IPEndPoint( IPAddress.Parse("127.0.0.1"), 9050); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); int sockopt = (int)server.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout); Console.WriteLine("Default timeout: {0}", sockopt); server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 3000); sockopt = (int)server.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout); Console.WriteLine("New timeout: {0}", sockopt); string welcome = "Hello, are you there?"; data = Encoding.ASCII.GetBytes(welcome); server.SendTo(data, data.Length, SocketFlags.None, ipep); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint tmpRemote = (EndPoint)sender; data = new byte[1024]; recv = server.ReceiveFrom(data, ref tmpRemote); Console.WriteLine("Message received from {0}:", tmpRemote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); while(true) { input = Console.ReadLine(); if (input == "exit") break; server.SendTo(Encoding.ASCII.GetBytes(input), tmpRemote); data = new byte[1024]; recv = server.ReceiveFrom(data, ref tmpRemote); stringData = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(stringData); } Console.WriteLine("Stopping client"); server.Close(); } }
Test Udp Client
using System; using System.Net; using System.Net.Sockets; using System.Text; public class TestUdpClient { public static void Main() { byte[] data = new byte[1024]; IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050); Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp); string welcome = "Hello, are you there?"; data = Encoding.ASCII.GetBytes(welcome); server.SendTo(data, data.Length, SocketFlags.None, ipep); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint tmpRemote = (EndPoint)sender; data = new byte[1024]; int recv = server.ReceiveFrom(data, ref tmpRemote); Console.WriteLine("Message received from {0}:", tmpRemote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); server.SendTo(Encoding.ASCII.GetBytes("message 1"), tmpRemote); server.SendTo(Encoding.ASCII.GetBytes("message 2"), tmpRemote); server.SendTo(Encoding.ASCII.GetBytes("message 3"), tmpRemote); server.SendTo(Encoding.ASCII.GetBytes("message 4"), tmpRemote); server.SendTo(Encoding.ASCII.GetBytes("message 5"), tmpRemote); Console.WriteLine("Stopping client"); server.Close(); } }
Get TCP stream
using System; using System.IO; using System.Net.Sockets; public class NetWriter { public static void Main(string [] args) { string address = "www.kutayzorlu.com/java2s/com"; int port = 80; TcpClient client = new TcpClient(address,port); NetworkStream stream = client.GetStream( ); StreamWriter writer = new StreamWriter(stream); writer.WriteLine("www.kutayzorlu.com/java2s/com "); writer.Flush( ); using (StreamReader reader = new StreamReader(stream)) { while (reader.Peek( ) != -1) { Console.WriteLine(reader.ReadLine( )); } } } }
Picky Tcp Listener
/* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765 */ using System; using System.Net; using System.Net.Sockets; using System.Security; using System.Security.Permissions; using System.Text; [SocketPermission(SecurityAction.Deny, Access="Accept", Host="0.0.0.0", Port="9050", Transport="All")] [SocketPermission(SecurityAction.Deny, Access="Accept", Host="0.0.0.0", Port="9051", Transport="All")] [SocketPermission(SecurityAction.Deny, Access="Accept", Host="0.0.0.0", Port="9052", Transport="All")] public class PickyTcpListener { public static void Main() { int recv; TcpListener newsock = null; byte[] data = new byte[1024]; Console.Write("Enter port number to use: "); string stringPort = Console.ReadLine(); int port = Convert.ToInt32(stringPort); try { newsock = new TcpListener(port); newsock.Start(); } catch (SecurityException) { Console.WriteLine("Sorry, that port is unavailable"); return; } 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(); } }
Threaded Tcp Server
/* C# Network Programming by Richard Blum Publisher: Sybex ISBN: 0782141765 */ using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; public class ThreadedTcpSrvr { private TcpListener client; public ThreadedTcpSrvr() { client = new TcpListener(9050); client.Start(); Console.WriteLine("Waiting for clients..."); while(true) { while (!client.Pending()) { Thread.Sleep(1000); } ConnectionThread newconnection = new ConnectionThread(); newconnection.threadListener = this.client; Thread newthread = new Thread(new ThreadStart(newconnection.HandleConnection)); newthread.Start(); } } public static void Main() { ThreadedTcpSrvr server = new ThreadedTcpSrvr(); } } class ConnectionThread { public TcpListener threadListener; private static int connections = 0; public void HandleConnection() { int recv; byte[] data = new byte[1024]; TcpClient client = threadListener.AcceptTcpClient(); NetworkStream ns = client.GetStream(); connections++; Console.WriteLine("New client accepted: {0} active connections", connections); 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; ns.Write(data, 0, recv); } ns.Close(); client.Close(); connections--; Console.WriteLine("Client disconnected: {0} active connections", connections); } }