客戶端**
[csharp]view plain
copy
using
system;
using
system.net;
// 獲取網路資訊相關資料使用
using
system.net.sockets;
// 定義socket類的時候使用
using
system.text;
// 資料轉換的時候使用
namespace
client
// 功能二: 向某個特定伺服器傳送訊息
// 1.建立socket例項
socket client_socket = new
socket (addressfamily.internetwork, sockettype.stream, protocoltype.tcp);
// 2.建立連線點ipendpoint(測試的時候這裡不可以寫自己的位址哦)
string
strip =
"192.168.1.102"
; // 其實代表的就是網路的終點,也就是我們要連線的伺服器位址和埠號【埠號是用來識別應用程式的】
// 如果沒有埠號,當電腦受到資訊的時候就無法識別這條訊息是該傳送給qq還是該傳送給微博,類似這個意思
ipendpoint ipendpoint = new
ipendpoint (ipaddress.parse (strip), 2112);
// 3.建立連線
client_socket.connect (ipendpoint);
// 4.建立資料
string
prefix =
"long:"
;
string
content = console.readline ();
// 「\r是用來檢測readline的line,但是readline不會自動結束,需要回車,所以\n是用來檢測回車的」
string
suffix =
"\r\n"
; // 5.資料轉換,把字串轉換成位元流(使用system.text)
byte
besended = encoding.utf8.getbytes (prefix + content + suffix);
// 6.傳送資料,將陣列傳送給ipendpoint中定義的位址
client_socket.send (besended);
} }
} 伺服器有兩種**:
【伺服器**方式一】
[csharp]view plain
copy
///
/// myfirstserver 伺服器端程式(socket實現)
///
using
system;
using
system.net.sockets;
using
system.net;
using
system.text;
namespace
myfirstserver
} // 5.3 結束當前客戶連線
socket_client.close ();
} }
} }
【伺服器**方式二】
[csharp]view plain
copy
///
/// mysecondserver 伺服器端程式(tcplistener實現)
///
using
system;
using
system.net.sockets;
using
system.net;
using
system.text;
namespace
mysecondserver
} // 3.4 關閉客戶端
client.close ();
} }
} }
Redis客戶端和伺服器
一 redis客戶端 redisserver結構中儲存了所有客戶端的狀態資訊。struct redisserver 命令client list可以列出目前所有連線到伺服器的客戶端。命令client setname name 可以給客戶端設定乙個名字。偽客戶端 由於伺服器必須接收來自客戶端的命令以執行...
Redis 客戶端和伺服器
客戶端的資料結構 typedef struct redisclient redisclient 名字 name 標誌值 flags 指向客戶端正在使用的資料庫的指標,以及該資料庫的號碼 當前要執行的命令 命令的引數 命令的個數,以及指向命令實現函式的指標 輸入緩衝區 querybuf 輸出緩衝區 複...
socket 客戶端和服務端通訊
客戶端要連線伺服器 首先要知道伺服器的ip位址。而伺服器裡有很多的應用程式,每乙個應用程式對應乙個埠號 所以客戶端想要與伺服器中的某個應用程式進行通訊就必須要知道那個應用程式的所在伺服器的ip位址,及應用程式所對應的埠號 首先建立乙個解決方案,在解決方案下建立乙個 socket通訊 windows窗...