socket 非同步通訊,執行緒池是由系統來維護執行緒的
注意:非同步呼叫時,不能使用同步呼叫的方法,會執行緒阻塞
server:
using system;
using system.collections.generic;
using system.text;
using system.net;
using system.net.sockets;
namespace socketdemo
public bool isopen
public string address
}// 管理client
class clientmanager
}public static bool i***ist(string address)
public static void close(string address)
});}
// 傳送訊息到clientlist
public static void sendmsgtoclientlist(string msg, string address = null)
});}
private static void sendtarget(iasyncresult res)
}// 接收訊息
class receivehelper
public void receivetarget(iasyncresult res)
else
}// 繼續等待
client.beginreceive(bytes, 0, bytes.length, socketflags.none, new asynccallback(receivetarget), client);}}
// 監聽請求
class accepthelper
public void accepttarget(iasyncresult res)
);receivehelper rs = new receivehelper() ;
iasyncresult recres = client.beginreceive(rs.bytes, 0, rs.bytes.length, socketflags.none, new asynccallback(rs.receivetarget), client);
// 繼續監聽
server.beginaccept(new asynccallback(accepttarget), server);}}
class program
;iasyncresult res = server.beginaccept(new asynccallback(ca.accepttarget), server);
string str = string.empty;
while (str != "exit")
server.close();}}
}
client:
using system;
using system.text;
using system.net;
using system.net.sockets;
client.close();
}static void connecttarget(iasyncresult res)
static void sendtarget(iasyncresult res)
static void receivetarget(iasyncresult res)
// 繼續等待輸入
client.beginreceive(oubytes, 0, 2048, socketflags.none, new asynccallback(receivetarget), client);}}
}
C Socket聊天室(小白整理)
最近算是0基礎學了socket的程式設計,發現很多不友好。其實是自己不知道,啊哈哈。最開始建立c 的指令碼時要建立窗體,而不是控制台程式。之後建議根據介面,自己來寫。還有別忘了server和client建立兩個程式哦。分別為服務端,客戶端。正式的socket服務端 public partial cl...
用CSocket實現聊天室程式
基本上是照著書上做的 花了10天左右反覆閱讀 基本搞懂後才除錯 雖然書上有很詳細的 但是有些東西還是不全 比如標頭檔案 還有vc6.0和2005的小差別 比如unicode編碼問題 send函式的第2個引數要 2 還有書上也有錯的地方 當你理解了書上 時就能找出 敲完執行時還遇到了亂碼問題 在csd...
C Socket 同步 多執行緒 聊天室
多執行緒,沒有自己寫執行緒池,是使用系統執行緒池來管理的 demo寫的比較亂 server using system using system.collections.generic using system.text using system.net using system.net.socket...