標籤:lin listen 用戶端 查詢方式 get nts 監聽 new internet
用戶端與伺服器通訊,通過IP(識別主機)+連接埠號碼(識別應用程式)。
IP地址查詢方式:Windows+R鍵,輸入cmd,輸入ipconfig。
連接埠號碼:可自行設定,但通常為4位。
伺服器端:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace _021_socket編程_TCP協議
{
class Program
{
static void Main(string[] args)
{
Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //TCP協議
//IP+連接埠號碼:ip指明與哪個電腦通訊,連接埠號碼(一般為4位)指明是哪個應用程式
IPAddress ipaddress = new IPAddress(new byte[] { 192, 168, 43, 231 });
EndPoint point = new IPEndPoint(ipaddress, 7788);
tcpServer.Bind(point);
tcpServer.Listen(100);
Console.WriteLine("開始監聽");
Socket clientSocket = tcpServer.Accept();//暫停當前線程,直到有一個用戶端串連過來,之後進行下面的代碼
Console.WriteLine("一個用戶端串連過來了");
string message1 = "hello 歡迎你";
byte[] data1 = Encoding.UTF8.GetBytes(message1);
clientSocket.Send(data1);
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();
}
}
}
用戶端:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace _001_socket編程_tcp協議_用戶端
{
class Program
{
static void Main(string[] args)
{
Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ipaddress = IPAddress.Parse("192.168.43.231");
EndPoint point = new IPEndPoint(ipaddress, 7788);
tcpClient.Connect(point);
byte[] data = new byte[1024];
int length = tcpClient.Receive(data);
string message = Encoding.UTF8.GetString(data, 0, length);
Console.WriteLine(message);
//向伺服器端發送訊息
string message2 = Console.ReadLine();//用戶端輸入資料
tcpClient.Send(Encoding.UTF8.GetBytes(message2));//把字串轉化成位元組數組,然後發送到伺服器端
Console.ReadKey();
}
}
}
注意:要實現用戶端與伺服器端通訊,應分別為其建立工程,並且應該先運行伺服器。
C#Socket_TCP(用戶端,伺服器端通訊)