Csharp/C Sharp by API/System.Net.Sockets/NetworkStream
Содержание
[убрать]NetworkStream.Flush()
/*
C# Network Programming
by Richard Blum
Publisher: Sybex
ISBN: 0782141765
*/
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class TcpClientSample
{
public static void Main()
{
byte[] data = new byte[1024];
string input, stringData;
TcpClient server;
try
{
server = new TcpClient("127.0.0.1", 9050);
} catch (SocketException)
{
Console.WriteLine("Unable to connect to server");
return;
}
NetworkStream ns = server.GetStream();
int recv = ns.Read(data, 0, data.Length);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
while(true)
{
input = Console.ReadLine();
if (input == "exit")
break;
ns.Write(Encoding.ASCII.GetBytes(input), 0, input.Length);
ns.Flush();
data = new byte[1024];
recv = ns.Read(data, 0, data.Length);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}
Console.WriteLine("Disconnecting from server...");
ns.Close();
server.Close();
}
}
NetworkStream.Read
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class NetworkStreamTcpClient
{
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.Stream, ProtocolType.Tcp);
server.Connect(ipep);
NetworkStream ns = new NetworkStream(server);
if (ns.CanRead)
{
recv = ns.Read(data, 0, data.Length);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}
else
{
Console.WriteLine("Error: Can"t read from this socket");
ns.Close();
server.Close();
return;
}
while(true)
{
input = "asdf";
if (input == "exit")
break;
if (ns.CanWrite)
{
ns.Write(Encoding.ASCII.GetBytes(input), 0, input.Length);
ns.Flush();
}
recv = ns.Read(data, 0, data.Length);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}
Console.WriteLine("Disconnecting from server...");
ns.Close();
server.Shutdown(SocketShutdown.Both);
server.Close();
}
}
NetworkStream.Write
using System;
using System.Text;
using System.IO;
using System.Net.Sockets;
public class TryTcp {
public static void Main(String [] args) {
TcpClient client = new TcpClient("www.nfex.ru", 80);
NetworkStream stream = client.GetStream();
byte[] send = Encoding.ASCII.GetBytes("GET HTTP/1.0 \r\n\r\n");
stream.Write(send, 0, send.Length);
byte[] bytes = new byte[client.ReceiveBufferSize];
int count = stream.Read(bytes, 0, (int)client.ReceiveBufferSize);
String data = Encoding.ASCII.GetString(bytes);
char[] unused = {(char)data[count]};
Console.WriteLine(data.TrimEnd(unused));
stream.Close();
client.Close();
}
}
new NetworkStream
using System;
using System.IO;
using System.Net.Sockets ;
class MainClass
{
public static void Main()
{
TcpListener tcpl = new TcpListener(9999);
tcpl.Start();
for (;;)
{
Socket newSocket = tcpl.AcceptSocket();
if (newSocket.Connected)
{
NetworkStream ns = new NetworkStream(newSocket);
byte[] buf = {1,2,3,4,5,6,7,8,9};
ns.Write(buf, 0, 9);
ns.Flush();
ns.Close();
}
newSocket.Close();
break;
}
}
}