用戶端代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace SocketClient
{
class Program
{
static void Main(string[] args)
{
//儲存輸入要發送的字串
string input;
//要串連的遠程IP
IPAddress remoteHost = IPAddress.Parse("172.16.86.90");
//IP地址跟連接埠的組合
IPEndPoint iep = new IPEndPoint(remoteHost, 8080);
//把地址綁定到Socket
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//串連遠程伺服器
try
{
clientSocket.Connect(iep);
Console.WriteLine("請輸入您要發送的字串");
//儲存輸入的字串
input = Console.ReadLine();
//用位元組數組儲存要發送的字串
byte[] message = System.Text.Encoding.Unicode.GetBytes(input);
//建立一個NetworkStream對象發送資料
NetworkStream netstream = new NetworkStream(clientSocket);
//向伺服器端發送message內容
netstream.Write(message, 0, message.Length);
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
catch (System.Exception ex)
{
Console.WriteLine("伺服器端串連失敗");
}
}
}
}
伺服器端代碼
代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace SocketServer
{
class Program
{
static void Main(string[] args)
{
//本機IP
IPAddress ip = IPAddress.Parse("172.16.86.90");
//IP地址跟連接埠的組合
IPEndPoint iep = new IPEndPoint(ip, 8080);
//建立Socket
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//綁定Socket
socket.Bind(iep);
//伺服器已經做好接收任何串連的準備
socket.Listen(10);
while (true)
{
//執行accept方法
Socket Client = socket.Accept();
byte[] message = new byte[1024];
NetworkStream networkStream = new NetworkStream(Client);
int len = networkStream.Read(message, 0, message.Length);
//byte數群組轉換成string
string output = System.Text.Encoding.Unicode.GetString(message);
Console.WriteLine("一共從用戶端接收了" + len.ToString() + "位元組。接收字串為:"+output);
}
}
}
}