1. 程式人生 > >Socket網絡編程學習筆記

Socket網絡編程學習筆記

建立 network tcp 通過 void net () cps 建立連接

1 服務器 發送消息和接受消息的代碼

namespace Socket_編程_tcp協議_服務端
{
class Program
{
static void Main(string[] args)
{
//1.創建服務端socket類
Socket tcpServer = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2.綁定IP和端口號 192.168.155.1
IPAddress ipaddress = new IPAddress(new byte[]{192,168,155,1});
EndPoint point = new IPEndPoint(ipaddress,7788); //ipendpoint是對ip+端口號做了一次封裝的類
tcpServer.Bind(point); //這是向操作系統申請一個可用的ip跟端口號 用來做通信
//3.開始監聽等待客戶端做連接
tcpServer.Listen(100); //參數是最大連接數
Console.WriteLine("開始監聽");
Socket clientSocket = tcpServer.Accept(); //暫停當前線程,直到有一個客戶端連接過來,之後進行下面的代碼
//使用返回的socket跟客戶端做通信
Console.WriteLine("客戶端連接過來了");

string message = "hello歡迎連接";
byte[] data = Encoding.UTF8.GetBytes(message);//對字符串做二進制的編碼得到一個字符串的字節數組
clientSocket.Send(data);
Console.WriteLine("向客戶端發送了一條數據");
//接受消息
byte[] data2 = new byte[1024]; //創建一個字節數組容器來接受客戶端發送過來的消息
int length = clientSocket.Receive(data2);
string message2 = Encoding.UTF8.GetString(data2, 0, length);
Console.WriteLine("接受到了一條消息"+message2);
Console.ReadKey();
}
}
}

2:客戶端向服務端發送消息和接受消息代碼

namespace Socket編程_tcp協議_客戶端
{
class Program
{
static void Main(string[] args)
{
//1.創建socket
Socket tcpClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2.發起建立連接的請求
IPAddress ipAddress = new IPAddress(new byte[] {192, 168, 155, 1 }); //用來存儲ip地址
EndPoint point = new IPEndPoint(ipAddress,7788); //用來指用來指定IP地址和端口數據
tcpClient.Connect(point); //與主機建立連接 通過ip和端口號
//
byte[] data = new byte[1024]; //定義一個byte類型的數組

int length = tcpClient.Receive(data); //接受數據 byte類型的數組,這個data是用來接受數據的
// length 表示接受了多少字節的數據
string message = Encoding.UTF8.GetString(data,0,length);
Console.WriteLine(message);

//1、服務器端發送消息

string message2 = Console.ReadLine(); //讀取用戶的輸入 把輸入發送到服務器端

byte[] date = Encoding.UTF8.GetBytes(message2); //把字符串轉化成字符數組
tcpClient.Send(date);
Console.ReadKey();
}
}
}

Socket網絡編程學習筆記