導航:首頁 > 源碼編譯 > cwebserver項目源碼

cwebserver項目源碼

發布時間:2022-07-18 08:48:51

㈠ 如何用C語言開發一個通用web伺服器

用C語言開發WEB,可以用C++BUILDER6,稱ISAPI,一般人可能做不起來,有點麻煩;
唯一是速度很快,別人看不到源碼,掌握了編程套路,也可以開發應用;
缺點:
1。不是解釋性語言,做的WEB調試非常麻煩;現在做WEB開發的,用C#、java較多;都是解釋性的語言;
2。因為是.DLL的二進制代碼,一般商業網站不給予運行的環境,因為網站伺服器會被你可能搞癱,安全性得不到保障;所以,你得自備網頁伺服器;
3。得不到技術支持,因為沒幾個人會這種開發;

㈡ 給了用j2ee開發的項目的源碼,怎麼知道它具體使用什麼技術組合開發的

看了你的截圖。實際上就是JSP+Servlet

Myeclipse 建立的工程,你可以用記事本打開.classpath 文件查看,該工程引用的包,如果有struts名稱的包,它自然就是JSP+Struts,當然還可能有其他的jar包,這個你可以去網路下名稱,查看到底是什麼技術,web.xml也可以看出來,
使用了struts技術的有:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>

這樣的配置,其實這些東西很容易判斷,主要還是你建的項目少了,接觸少了。

㈢ C# WINFORM C/S 客戶端調服務端程序小源碼案例,非直接調資料庫

這樣的案例,一定是一個完整的工程,因為涉及到客戶端、伺服器端、資料庫等至少兩個子工程,不會太小,只能跟你說下大致方法。
再一個打的工程項目里,新建兩個子工程,一個是Winfrom工程,一個Web工程。如果不直接調用資料庫,可以在Web工程中新建一個Web服務,將資料庫訪問相關的代碼,寫入Web服務,在Winfrom項目中新增伺服器引用,引用Web服務,通過Web服務間接讀寫資料庫。
Web服務可以使用加強版的WCF,目前很流行。不直接調用資料庫的優點是,客戶端不保留資料庫連接字,可以保證資料庫安全。

㈣ c++如何與java進行交互 使用webservice形式。發我一個源碼吧。或者給我講一下其中的思路,以及使用的工具

使用JNI!不管什麼樣的應用都可以(如果是Android的話需要在Linux下),java中可以直接調用c中的方法,不需要其他工具,有eclipse和vc就可以,去了解一下,步驟也不難。

㈤ 用C#寫簡單的Web Service

在開始下面這個例子之前,你的系統需要:
1、WIN2000 + IIS;
2、VS.Net;
3、SQL Server(我這里用的是SQL資料庫);

這個Web Service的例子用的是MS大吹的C#寫的,如果你喜歡VB,那麼用VB也是一樣的哦,只不過語法上一些小的差別而已,道理都是一樣的,不過即然MS都鼓吹C#,如果你能夠用C#寫還是用這為好哦。

下面是寫的步驟:

一、打開VS。NET的集成開發環境,FILE菜單上選擇New,新建一個C#的ASP.NET Web Service工程,工程名為WebServiceDemo(完整的是http://localhost/WebServiceDemo)。這是VS就在你的Web系統目錄下生成了相應的文件,我的服務目錄是默認的c:\Inetpub\wwwroot,生成的文件就在c:\Inetpub\wwwroot\webserviceDemo下,就不多說了。

二、打開與生成工程對應的C#源文件,這里是Service1.asmx.cs,VS.Net集成環境已經為你生成了相應的代碼如下:
// =============================================================================
// 文件: Service1.asmx.cs
// 描述: 架構一個Web Service來對資料庫進行互訪
//
//
// ============================================================================

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;

// 系統生成了與工程名相同的命名空間
namespace WebServiceDemo
{
/// <summary>
/// Summary description for Service1.
/// </summary>
// 所有的WEB服務都是派生於System.Web.Services.WebService的。
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN: This call is required by the ASP.NET Web Services Designer
InitializeComponent();
}
}
}

裡面我添加了文件說明和相應的注釋,接下來就是在裡面編寫相應的服務代碼了。這里我想先把對資料庫的操作封裝在同一命名空間的單獨的一個類里,下面編寫WEB方法時只用接調用這個類中的相應方法就可以了。下面是我寫的這個類的代碼:

// -------------------------------------------------------------------------
// 構建一個新類,用於對數據的訪問
// -------------------------------------------------------------------------
public class DataAccess
{
// 連接字元串成員變數
private string m_szConn = "";
private SqlConnection m_sqlConn;
private SqlDataAdapter m_sqlDa;
// 構造函數
public DataAccess(string szConnectionString)
{
m_szConn = szConnectionString;
}
// 返回一個記錄集
public DataSet GetDataset(string szCommandText)
{
DataSet sqlDs;

try
{
m_sqlConn = new SqlConnection(m_szConn);
m_sqlConn.Open();
m_sqlDa = new SqlDataAdapter(szCommandText,m_sqlConn);
sqlDs = new DataSet();
m_sqlDa.Fill(sqlDs);
m_sqlConn.Close();
return sqlDs;
}
catch
{
return null;
}
}
// 重載上述方法
public DataSet GetDataset(string szCommandText, string szTableName)
{
DataSet sqlDs;

try
{
m_sqlConn = new SqlConnection(m_szConn);
m_sqlConn.Open();
m_sqlDa = new SqlDataAdapter(szCommandText,m_sqlConn);
sqlDs = new DataSet();
m_sqlDa.Fill(sqlDs,szTableName);
m_sqlConn.Close();
return sqlDs;
}
catch
{
return null;
}
}
}

這些就不多說了,與創建一般的C#類是一樣的。類中有三個函數,其中一個為構造函數,調用時傳入連接字元串。另外兩個函數都是一樣的作用,返回用戶需要的記錄集,只不是調用時傳的參數不一樣,實質都是一樣的。

下面就是在Service1類中添加真正用於WEB調用的代碼了,這部分才是給WEB應用程序調用的東西。在編寫這個類的代碼之前,應該先申請一個服務命令空間,設置相應的屬性,這一句可萬萬不能少哦,呵呵~,它告訴了WEB服務存放的路徑等相關的信息。如下:
// 聲明一個服務空間
[WebService(
Namespace = "http://localhost/WebServiceDemo/", //其實這個才是最重要的啦~,其它的都可以不要哦
Name = "Web Service Demo",
Description = "Web Service Demo"
)]
下面是Service1的代碼:

public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN: This call is required by the ASP.NET Web Services Designer
InitializeComponent();
}

#region Component Designer generated code

//Required by the Web Services Designer
private IContainer components = null;

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}

#endregion

// 連接字元串常量
const string szConn = "server=(local)\\taoyi;uid=sa;pwd=;"
+ "initial catalog=mydata;data source=taoyi";

[WebMethod]
public String About()
{
return "這是一個C#編寫的Web Service演示程序!";
}

// 返回其中一個WebServiceDemo表
[WebMethod]
public DataSet GetServiceDemoTable()
{
DataSet sqlDs = new DataSet();
DataAccess dataAcc = new DataAccess(szConn);
string szSql = "Select * From WebServiceDemo";
sqlDs = dataAcc.GetDataset(szSql,"Demo");

return sqlDs;
}
// 返回由用戶指定的查詢
[WebMethod]
public DataSet GetByUser(string szCommandText)
{
DataSet sqlDs = new DataSet();
DataAccess dataAcc = new DataAccess(szConn);
sqlDs = dataAcc.GetDataset(szCommandText);

return sqlDs;
}
}
是不是很簡單哦,就只這么點,呵呵~,不過也可以說明問題的了。這個類中聲明了三個WEB方法,有沒有發覺呢?每個方法的前面都加了[WebMethod],表示該方法為WEB方法。呵呵,如果你想要你寫的函數可以讓WEB應用程序調用的話,這個可不能少的啦~,不然WEB應用程序就無法調用的。

到此一個WEB服務就完成了,點擊運行看看,如果沒什麼錯的話,就會出現如下的WEB頁面服務描述:

Service1

The following operations are supported. For a formal definition, please review the Service Description.

* GetByUser

* GetServiceDemoTable

* About

.....(下面還有很多)

其中代星號的就是先前在函數前加了[WebMethod]的函數。在出現在頁面中你可以單擊相應的函數,然後就會跳到調用頁面,你可以在相應的文本框中(如果函數有參數的話)輸入相應的參數,點而調用按鈕,那麼就可以看到函數返回的結果了(前提是函數調用無錯的話),不過全是XML格式的文本。比如我的GetServiceDemoTable函數調用的結果如下:

<?xml version="1.0" encoding="utf-8" ?>
- <DataSet xmlns="http://tempuri.org/">
- <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="zh-CN">
- <xs:complexType>
- <xs:choice maxOccurs="unbounded">
- <xs:element name="Demo">
- <xs:complexType>
- <xs:sequence>
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="szUser" type="xs:string" minOccurs="0" />
<xs:element name="szSex" type="xs:string" minOccurs="0" />
<xs:element name="szAddr" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
- <NewDataSet xmlns="">
- <Demo diffgr:id="Demo1" msdata:rowOrder="0">
<ID>1</ID>
<szUser>taoyi</szUser>
<szSex>男</szSex>
<szAddr>四川瀘州</szAddr>
</Demo>
- <Demo diffgr:id="Demo2" msdata:rowOrder="1">
<ID>2</ID>
<szUser>xiner</szUser>
<szSex>女</szSex>
<szAddr>四川宜賓</szAddr>
</Demo>
</NewDataSet>
</diffgr:diffgram>
</DataSet>

到此為至,Web Service程序就已經算是完成了。

下面要做的是寫一個WEB應用程序來測試我寫的這個Web Service了,看看能不能達到想要的結果。建立Web應用程序的步驟如下:

一、新建一個ASP.Net Web Application工程,與創建Web Service的第一步一樣,只是工程類型不一樣罷了。我這里工程名為WebServiceDemoTest,完整的為http://localhost/WebServiceDemoTest,系統就在相應的目錄(c:\Inetpub\wwwroot\WebserviceDemoTest)下生成了所需文件。
二、在設計視圖下打開WebForm1.aspx文件,在裡面放置一個panel容器,為了達到測試的目的,我們需要三個服務端按鈕和一個服務端文本框,分別調用我們在Web Service中寫的三個函數,另外,為了展示調用方法所得達的數據,還需要一個服務端標簽控制項和一個DataGrid控制項。頁面的布置就隨便你了,想怎麼放置就怎麼放置,只要能達到演示的目的就行。
三、引用先前寫的Web Service程序,菜單步驟如下project->add web reference...,然後輸入我們Web Service的路徑,這里是http://localhost/WebServiceDemo/Service1.asmx,點擊添加就OK了。這時你將在類視圖中看到localhost命名空間了。
四、編寫測試代碼。

為了便於後面少寫些代碼,如(xxxx.xxxx.xx xx = new xxxx.xxx.xx()這種),那麼首先你得引用localhost命名空間的service1類,以後直接寫xxxx xx = new xxxx()就可以了。
下面是幾個按鈕的代碼:

// 測試GetServiceDemoTable()
private void Button2_Click(object sender, System.EventArgs e)
{
DataSet ds = new DataSet();
Service1 oService = new localhost.Service1();

// 返回記錄集
ds = oService.GetServiceDemoTable();
if (ds != null)
{
// 顯示記錄集的記錄
DataGrid1.DataSource = ds.Tables["Demo"];
DataGrid1.DataBind();
}
else
{
this.Response.Write("載入數據錯誤!");
}
}
// 測試GetByUser()
private void Button1_Click(object sender, System.EventArgs e)
{
DataSet ds = new DataSet();
Service1 oService = new localhost.Service1();
String szCommand = TextBox1.Text;

ds = oService.GetByUser(szCommand);
if (ds != null)
{
DataGrid1.DataSource = ds;
DataGrid1.DataBind();
}
else
Response.Write("錯誤!有可能是SQL命令有問題!");
}
// 測試About()
private void Button3_Click(object sender, System.EventArgs e)
{
Service1 oService = new localhost.Service1();
Label1.Text = oService.About();
}

OK,最後就是運行了,如果一切OK,點擊第一個按鈕得到的將是在一個包函用戶執行的SQL命令的表結果。第二個按鈕得到的就是上面運行Web Service時的GetServiceDemoTable得到的XML描述,即
ID szUser szSex szAddr
1 taoyi 男 四川瀘州
2 xiner 女 四川宜賓
點擊第三個按鈕,則在Label1中顯示"這是一個C#編寫的Web Service演示程序!」的字元串。

㈥ 如何在github里查看別的web開源項目代碼

如果想順利的看懂一般需要幾個條件,就拿nginx來說吧。
1. 熟悉c語言
2. 平時就是在開發網路服務
3. 經常使用nginx。

之前有個同事對nginx源碼熟讀了很多,原因就是他就是專門開發server的,而且他讀源碼的時候經常修改nginx源碼調試跑看看效果。

如果完全不是一個方向的話,比如如果你是搞前端js的話,感覺硬啃server源碼恐怕很難,建議還是看別人的源碼詳解或者之類的讀書筆記看起。

㈦ c語言使用gsoap編寫webservice服務端,如何返回結構體 能把這個源代碼給我發一份吧。

已發至您的郵箱

㈧ 我想用java寫一個簡單的web server,應該怎麼寫呀

我原來寫過一個很簡單的,可以指定你存放網頁的文件夾,可以指定允許訪問的IP,給你源碼看看吧。public class WebServer {
static Button btReloadIP=new Button("更新合法IP列表");
static Button btAllow=new Button("允許此IP");
static Button btRepel=new Button("拒絕此IP");
static JTextField tfNewIP=new JTextField(20);
static JPanel pane=new JPanel();
static JTextField tfState=new JTextField(25);
static TextField tfURL=new TextField("G:\\webServer2\\",28);
static TextField tfPort=new TextField("10288",3);
static Button btStart=new Button("啟動伺服器");
static Button btStop=new Button("停止伺服器");
private static int IPnum=0;
public static boolean IPadmin=false;
static boolean click=false;
private static String url;
private static String[] checkIP=new String[255];
private static Thread serverThread=null;
private static Socket connectionSocket=null;
private static ServerSocket listenSocket=null;
public WebServer() throws IOException{
serverThread=new Thread(new Runnable(){
public void run(){
try {
listenSocket = new ServerSocket(Integer.parseInt(tfPort.getText()));
} catch (IOException e) { }
while(true){
try {
connectionSocket=listenSocket.accept();
@SuppressWarnings("unused")
webClient client=new webClient(connectionSocket);
} catch (IOException e) {
}
}
}
});
}
public static void main(String args[])throws Exception{
GUI();
}
public static void GUI(){
JFrame f=new JFrame("小白兔Web伺服器(BY 丁尋)");
f.setSize(300,200);
f.setLocation(500, 300);
f.getContentPane().add(pane,BorderLayout.CENTER);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
//不可以變大變小
f.setResizable(false);
pane.add(new JLabel("埠號:"));
pane.add(tfPort);
pane.add(btStart);
pane.add(btStop);
pane.add(new JLabel("配置路徑"));
pane.add(tfURL);
pane.add(tfState);
pane.add(new JLabel("新IP請求"));
pane.add(tfNewIP);
pane.add(btAllow);
pane.add(btRepel);
pane.add(btReloadIP); btStart.addActionListener(new Listener());
btStop.addActionListener(new Listener());
btAllow.addActionListener(new Listener());
btRepel.addActionListener(new Listener());
btReloadIP.addActionListener(new Listener());

}
static class Listener implements ActionListener {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent event) {
if(event.getActionCommand()=="啟動伺服器"){
try {
url=tfURL.getText();
readIP();
tfState.setText("伺服器已經啟動......地址:"
+InetAddress.getLocalHost().toString());
} catch (Exception e) {
e.printStackTrace();
} try {
new WebServer();
} catch (IOException e) {
e.printStackTrace();
} serverThread.start(); btStart.setEnabled(false);
tfPort.setEditable(false);
btStop.setEnabled(true);
tfURL.setEditable(false);
btReloadIP.setEnabled(true);
}
if(event.getActionCommand()=="停止伺服器"){
serverThread.stop();
tfState.setText("伺服器已經停止");
btStart.setEnabled(true);
tfPort.setEditable(true);
btStop.setEnabled(false);
tfURL.setEditable(true);
btReloadIP.setEnabled(false);
}
if(event.getActionCommand()=="允許此IP"){
IPadmin=true;
//serverThread.start();
click=true;
btAllow.setEnabled(false);
btRepel.setEnabled(false);
tfNewIP.setText(null);
}
if(event.getActionCommand()=="拒絕此IP"){
click=true;
IPadmin=false;
//serverThread.start();
btAllow.setEnabled(false);
btRepel.setEnabled(false);
tfNewIP.setText(null);
}
if(event.getActionCommand()=="更新合法IP列表"){
try {
readIP();
} catch (IOException e) {
// e.printStackTrace();
}
}
}
}

public static void readIP() throws IOException{
int i=0;
byte[] ips = new byte[65535];
File IPfile=new File(url+"checkIP.txt");
FileInputStream fileReader=new FileInputStream(IPfile);
fileReader.read(ips);
fileReader.close();
String strip=new String(ips);
StringTokenizer getIP=new StringTokenizer(strip,System.getProperty("line.separator"));

for(;;){
if(getIP.hasMoreTokens()){
checkIP[i]=getIP.nextToken();
System.out.println(checkIP[i]);
i++;
}
else{break;}
}
IPnum=i;

}
public static void disconnect(webClient c){

try {
//c.stop();
c.socket.close();
c.socket=null;
c=null; } catch (IOException e) {
e.printStackTrace();
}
//
}
class webClient extends Thread{
boolean check=true;
boolean send=false;
Socket socket;
BufferedReader inFromClient=null;
DataOutputStream outToClient=null;
String fileName;
String requestMessageLine;
StringTokenizer tokenizedLine=null;
FileInputStream inFile=null;
byte[] fileInBytes=null;
int numOfBytes=0;
File afile=new File(url+"log.html");
byte[] b;
public webClient(Socket s) throws IOException{
FileOutputStream out=new FileOutputStream(afile,true);
StringBuffer str=new StringBuffer();
SimpleDateFormat formatter=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String time=formatter.format(new Date());
socket=s;
str.append(time+" Client_IP:"+socket.getInetAddress().toString()+
" Client_Port:"+socket.getPort()+"<br>"+
System.getProperty("line.separator")
);
b=(new String(str)).getBytes();
System.err.println(new String(str));
out.write(b);
out.close();
inFromClient=new BufferedReader(new
InputStreamReader(socket.getInputStream()));
outToClient=new DataOutputStream(socket.getOutputStream());
if(!checkIP(socket)){
String strWait="<html>" +
"<title>等待驗證</title>" +
"<body>正在等待管理員驗證您的IP是否合法,請稍候......<br><br>" +
"(如果頁面沒有自動跳轉,請每5秒鍾刷新一次," +
"以判斷管理員是否已經允許您進入)</body>" +
"</html>";
byte[] waiting=strWait.getBytes();
outToClient.writeBytes("HTTP/1.1 200 Document Follows\r\n");
outToClient.writeBytes("Content-Type: text/html\r\n");
outToClient.writeBytes("Content-Length: "+waiting.length+"\r\n");
outToClient.writeBytes("\r\n");
outToClient.write(waiting,0,waiting.length);
if(!admin()){
return;
}
WebServer.IPadmin=false;
}
this.start(); }
public void receive() throws IOException{
while(socket!=null){
requestMessageLine=inFromClient.readLine();
if(requestMessageLine.length()==0){break;}
System.out.println(requestMessageLine);
tokenizedLine=new StringTokenizer(requestMessageLine);
if(tokenizedLine.hasMoreTokens()){
String strhead=tokenizedLine.nextToken();
if(strhead.equals("GET")){
send=true;
fileName=tokenizedLine.nextToken();
if(fileName.equals("/")){
fileName="index.html";
}
else if(fileName.startsWith("/")){
fileName=fileName.substring(1);
fileName=fileName.replace("%5C", "/");
fileName=fileName.replace("%20", " ");
//如果是文件 ,不要check
check=false;
}
}//endnexttoken
if(check){
if(strhead.equals("User-Agent:")){
if(requestMessageLine.contains("Firefox/3")){
System.err.println("true");
}
else{
System.err.println("false");
fileName="ERROR.html";
send=true;
}
}
}
//....
}//endhastoken
}//endwhile
if(send){
readFile();
send(fileInBytes, numOfBytes);
} }
public void send(byte[] fileInBytes,int numOfBytes) throws IOException{
outToClient.writeBytes("HTTP/1.1 200 Document Follows\r\n"); if(fileName.endsWith(".jpg")){
outToClient.writeBytes("Content-Type: image/jpg\r\n");
}
else if(fileName.endsWith(".gif")){
outToClient.writeBytes("Content-Type: image/gif\r\n");
}
else if(fileName.endsWith(".wmv")){
outToClient.writeBytes("Content-Type: video/x-ms-wmv\r\n");
}
else if(fileName.endsWith(".avi")){
outToClient.writeBytes("Content-Type: video/avi\r\n");
}
else if(fileName.endsWith(".html")||fileName.endsWith(".htm")){
outToClient.writeBytes("Content-Type: text/html\r\n");
}
outToClient.writeBytes("Content-Length: "+numOfBytes+"\r\n"); outToClient.writeBytes("\r\n");
outToClient.write(fileInBytes,0,numOfBytes);
}
//得到文件
public void readFile() throws IOException{
File file=new File(url+fileName);
b=(" Client_Request:"+fileName+"<br>"+
System.getProperty("line.separator")).getBytes();
FileOutputStream out=new FileOutputStream(afile,true);
out.write(b);
out.close();
numOfBytes=(int)file.length();
inFile=new FileInputStream(url+fileName);
fileInBytes=new byte[numOfBytes];
inFile.read(fileInBytes);
inFile.close(); }
public boolean checkIP(Socket skt){
for(int i=0;i<WebServer.IPnum;i++){
if(skt.getInetAddress().toString().equals(checkIP[i])){
return true;
}
}
return false;

}
public boolean admin() throws IOException{
WebServer.tfNewIP.setText("IP:"+socket.getInetAddress().toString()+
" PORT:"+socket.getPort());
WebServer.btAllow.setEnabled(true);
WebServer.btRepel.setEnabled(true);
while(!click){}
click=false;

if(WebServer.IPadmin){
File IPFile=new File(url+"checkIP.txt");
FileOutputStream appIP=new FileOutputStream(IPFile,true);
byte[] ips=(socket.getInetAddress().toString()+
System.getProperty("line.separator")).getBytes();
appIP.write(ips);
appIP.close();
//WebServer.readIP();
WebServer.checkIP[IPnum]=socket.getInetAddress().toString();
WebServer.IPnum++;
return true;
}
else{
WebServer.disconnect(this);
return false;
}
}

public void run(){
try {
receive();
} catch (IOException e) {
}
WebServer.disconnect(this);
}
}}

閱讀全文

與cwebserver項目源碼相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:576
python員工信息登記表 瀏覽:375
高中美術pdf 瀏覽:157
java實現排列 瀏覽:511
javavector的用法 瀏覽:979
osi實現加密的三層 瀏覽:230
大眾寶來原廠中控如何安裝app 瀏覽:910
linux內核根文件系統 瀏覽:240
3d的命令面板不見了 瀏覽:521
武漢理工大學伺服器ip地址 瀏覽:144
亞馬遜雲伺服器登錄 瀏覽:521
安卓手機如何進行文件處理 瀏覽:69
mysql執行系統命令 瀏覽:925
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:247
哈夫曼編碼數據壓縮 瀏覽:424
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:348