// server.cpp : 定義控制台應用程式的入口點。
#include "stdafx.h"
#include #include #include #include "filelog.h"
#include "time.h"
usingnamespace std;
#pragma comment(lib,"ws2_32.lib")
//多執行緒呼叫的方法只有乙個指標型的引數,有時候需要多個引數,所以定義乙個結構,引數作為結構的字段
typedef struct _receivestruct
} receivestruct;
//獲取今天日期的字串
string getdate(constchar*format)
//接收資料執行緒
void receive(pvoid param)
buf[bytes]='\0';
cout<<"客戶端說:"write("客戶端 ").writeline(getdate("%y-%m-%d %h:%m:%s").c_str()).writeline(buf);//記錄聊天內容
}}//獲取本機ip
in_addr gethostname(void)
//啟動伺服器
socket startserver(void)
short port=1986;
struct sockaddr_in serveraddress;
//初始化指定的記憶體區域
memset(&serveraddress,0,sizeof(sockaddr_in));
serveraddress.sin_family=af_inet;
serveraddress.sin_addr.s_un.s_addr = htonl(inaddr_any);
serveraddress.sin_port = htons(port);
//繫結
if(bind(serversocket,(sockaddr*)&serveraddress,sizeof(serveraddress))==socket_error)
buf[bytes]='\0';
cout<<"伺服器說:"<>ipstr;
unsigned long ip;
if((ip=inet_addr(ipstr))==inaddr_none)
return ip;
}//鏈結伺服器
void connect(socket &sock)
void unlock()
public:
filelog()
~filelog()
deletecriticalsection(&cs);//刪除臨界區
}bool open(constchar*filename);//開啟檔案
filelog& write(constchar*content);//向檔案中寫入內容
filelog& writeline(constchar*content);//向檔案中寫入內容
bool read(char*buf,int size);//讀檔案內容
bool close();//關閉檔案
};
#include "stdafx.h"
#include "filelog.h"
//開啟檔案
bool filelog::open(constchar*filename)
}return false;
}//寫檔案 返回當前物件的引用,實現連線操作
filelog& filelog::write(constchar*content)
//開始的時候少寫了這句,由於加的鎖沒有釋放,乙個執行緒占用之後,導致其他執行緒只能一直等待,好久都沒有找到原因。
unlock();
return*this;
} //寫入一行
filelog& filelog::writeline(constchar*content)
unlock();
return filelog::write("\r\n");
} //讀檔案內容
bool filelog::read(char*buf,int size)
return isok;
}//關閉檔案
bool filelog::close()
unlock();
return isok;
}
C 網路程式設計
首先我們解釋一下在網路程式設計時候,經常遇到的幾個概念 同步 synchronous 非同步 asynchronous 阻塞 block 和非阻塞 unblock 所謂同步方式,就是傳送方傳送資料報以後,不等接受方響應,就接著傳送下乙個資料報。非同步方式就是當傳送方傳送乙個資料報以後,一直等到接受方...
C 網路程式設計
1 ip網路中的每台主機都有乙個ip位址 它是邏輯位址 網際網路上的ip位址具有全球唯一性 4個位元組,192.168.0.16 2 osi將網路分為 tcp ip模型 應用層 應用層 表示層會話層 傳輸層 傳輸層 網路層 網路層 資料鏈路層 網路介面 物理層相同層次之間不可以直接通訊,是虛擬通訊。...
c 網路程式設計
microsoft.framework為應用程式訪問inter 提供了分層的 可擴充套件的以及受管轄的網路服務,其名字空間system.和system.sockets包含豐富的類可以開發多種網路應用程式。類採用的分層結構允許應用程式在不同的控制級別上訪問網路,開發人員可以根據需要選擇針對不同的級別編...