C Socket 同步 多執行緒 聊天室

2021-06-13 14:53:38 字數 1689 閱讀 1364

多執行緒,沒有自己寫執行緒池,是使用系統執行緒池來管理的

(demo寫的比較亂 ^_^~)

server:

using system;

using system.collections.generic;

using system.text;

using system.net;

using system.net.sockets;

using system.threading;

namespace socketdemo

public socket socket

public bool isopen

public string address

public void polltarget(object obj)

string stringdata = encoding.utf8.getstring(data, 0, recv);

datetimeoffset now = datetimeoffset.now;

//獲取client的ip和埠

string address = client.remoteendpoint.tostring();

if (stringdata.indexof("exit") > -1)

else}}

}// 管理client

class clientmanager

}public static bool i***ist(string address)

public static void close(string address)

});}

// 傳送訊息到clientlist

public static void sendmassage(string msg, string address = null)

});}

}class program

}threadserver.abort();

}static void serverthreadstarttarget(object obj)

;threadpool.queueuserworkitem(new waitcallback(info.polltarget));}}

}}

client:

using system;

using system.text;

using system.net;

using system.net.sockets;

using system.threading;

read.abort();

}static void threadstarttarget(object obj)

string stringdata = encoding.utf8.getstring(data, 0, recv);

datetimeoffset now = datetimeoffset.now;

//獲取server的ip和埠

string ip = client.remoteendpoint.tostring();

console.writeline(stringdata);

console.writeline(ip + " " + now.tostring("g"));}}

}}

C Socket 非同步 聊天室

socket 非同步通訊,執行緒池是由系統來維護執行緒的 注意 非同步呼叫時,不能使用同步呼叫的方法,會執行緒阻塞 server using system using system.collections.generic using system.text using system.net usin...

C Socket聊天室(小白整理)

最近算是0基礎學了socket的程式設計,發現很多不友好。其實是自己不知道,啊哈哈。最開始建立c 的指令碼時要建立窗體,而不是控制台程式。之後建議根據介面,自己來寫。還有別忘了server和client建立兩個程式哦。分別為服務端,客戶端。正式的socket服務端 public partial cl...

用CSocket實現聊天室程式

基本上是照著書上做的 花了10天左右反覆閱讀 基本搞懂後才除錯 雖然書上有很詳細的 但是有些東西還是不全 比如標頭檔案 還有vc6.0和2005的小差別 比如unicode編碼問題 send函式的第2個引數要 2 還有書上也有錯的地方 當你理解了書上 時就能找出 敲完執行時還遇到了亂碼問題 在csd...