一、伺服器端
1. 例項化並設定socket例項物件
a.建立ip位址和埠
b.繫結監聽位址
c.設定一下允許同時訪問數
2. 監聽連線
a.通過啟動乙個新的執行緒執行,這樣主線程不會假死(啟動執行緒,所帶的引數必須是object型別)
b.利用迴圈等待連線並返回乙個負責通訊的socket例項
c.返回的socket例項中可以獲取到所連線客服的ip位址
3. 接收客服的傳送過來的訊息
a.在監聽方法中啟動乙個新的執行緒執行
b.利用迴圈獲取傳送過來的訊息,呼叫獲取訊息的方法需要傳遞乙個位元組變數引數,作為容器。方法返回值為int,表示獲取到的有效位元組數
c.如果有效位元組數為0則跳出迴圈
d.接收到訊息給客服的返回訊息
4. 控制台程式伺服器端**
using system;二、客戶端using system.net;
using system.net.sockets;
using system.text;
using system.threading;
namespace serversocket
///
/// 監聽連線
///
///
static void listen(object o)
connection");
//開啟乙個新執行緒不停接收訊息
thread thread = new thread(recive);
thread.isbackground = true;
thread.start(send);
}}
///
/// 接收訊息
///
///
static void recive(object o)
var str = encoding.utf8.getstring(buffer,0, effective);
console.writeline(str);
var buffers = encoding.utf8.getbytes("server return message");
send.send(buffers);}}
}}
1. 例項化並進行連線socket例項物件
a.建立ip位址和埠(伺服器的ip和埠)
b.與伺服器端建立鏈結
2.接收伺服器傳送的訊息
a.啟動乙個新的執行緒執行
b.利用迴圈獲取傳送過來的訊息,呼叫獲取訊息的方法需要傳遞乙個位元組變數引數,作為容器。方法返回值為int,表示獲取到的有效位元組數
c.如果有效位元組數為0則跳出迴圈
3.給伺服器傳送訊息
a. 呼叫socket物件的send()方法直接傳送
4. 控制台程式客戶端**
using system;using system.net;
using system.net.sockets;
using system.text;
using system.threading;
namespace socketclient
");var temp = socketclient.send(buffter);
thread.sleep(1000);
}}
///
/// 接收訊息
///
///
static void recive(object o)
var str = encoding.utf8.getstring(buffer, 0, effective);
console.writeline(str);}}
}}
沒有控制台視窗的控制台程式
include include pragma comment linker,subsystem windows entry maincrtstartup int main int argc,char argv 編譯後執行程式會彈出乙個訊息框,而沒有背後的控制台視窗。再看看下面的 include in...
C 向控制台簡單輸出輸入
在c 中,向console輸出的方法有多種。這裡就詳細介紹一種,就是在console類中的write writeline 方法中應用格式化字串。格式如下 console.writeline 格式字串 變數列表 console.write 格式字串 變數列表 示例 code class program...
C語言控制台註冊登入 選擇功能案例
include void main else int czxh int xh 定義統計的變數 char name 8 double number int suanshu int fn 跳出迴圈定義的變數 fn printf 現在進入功能選擇 n 功能選擇 lop printf 輸入1進入成績統計功能...