導航:首頁 > 編程語言 > pythonsokect

pythonsokect

發布時間:2022-12-25 05:28:23

㈠ 高二理科女。想學網路編程語言,求推薦。

不知道 剛剛那些回答的 是什麼次元的。。。
基本任何一門語言都可以進行網路編程開發。。。而且都有相應的工具包,什麼7層協議基本不用你去考慮,除非你要自定義網路協議,但那也僅是基於sokect的自定義協議。

要進行網路編程開發,語言都不是問題,根據你掌握的C++完全可以開發了,沒必要去學其他語言,當然如果你想發展其他語言,也可以學學。 你如果想自己做APP 那麼客戶端或者也要學一門語言 Object-c android 等等

總之開發一個東西 跟語言基本沒多大關系。當然一些進行高封裝的語言,對於開發來說會比較方便,畢竟什麼都給封裝好了 比如 java python c++ 還有現在的golang

㈡ 網頁編程需要學習什麼知識

網路編程>> 1.看你是從事那方面. 網路編程一般只是通過Sokect編程來實現. 用什麼語言不是重點,重點是掌握網路結構和數據的傳輸,比如TCP和UDP的編程原理. 還要安全性也很重要. 至於用什麼語言不大重要,在Linux下C語言是首選. 在Windows你可以用你喜歡的語言. 沒必要局限那種語言.因為Python在網路編程很多人用. 還有網路編程涉及知識和范圍很廣. 只有打好基礎;特別是TCP和UDP編程.

㈢ 接觸Android網路編程需要什麼知識基礎

Android平台的網路應用絕大部分都是基於Java的編程介面的,也就是說我們開發類似的運用的時候可以有多種選擇,比J2me確實好多了。
2.1. 標准Java介面
java.net.*下面提供了訪問 HTTP 服務的基本功能。使用這部分介面的基本操作主要包括:
·創建 URL 以及 URLConnection / HttpURLConnection 對象
· 設置連接參數
·連接到伺服器
· 向伺服器寫數據
·從伺服器讀取數據
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;

try {
// 創建一個 URL 對象
URL url = new URL(your_url);

// 創建一個 URL 連接,如果有代理的話可以指定一個代理。
URLConnection connection = url.openConnection(Proxy_yours);
// 對於 HTTP 連接可以直接轉換成 HttpURLConnection,
// 這樣就可以使用一些 HTTP 連接特定的方法,如 setRequestMethod() 等
//HttpURLConnection connection =
(HttpURLConnection)url.openConnection(Proxy_yours);

// 在開始和伺服器連接之前,可能需要設置一些網路參數
connection.setConnectTimeout(10000);
connection.addRequestProperty("User-Agent",
"J2me/MIDP2.0");

// 連接到伺服器
connection.connect();

// 往伺服器寫數據,數據會暫時被放到內存緩存區中
// 如果僅是一個簡單的 HTTP GET,這一部分則可以省略
OutputStream outStream = connection.getOutputStream();
ObjectOutputStream objOutput = new ObjectOutputStream(outStream);
objOutput.writeObject(new String("this is a string..."));
objOutput.flush();

// 向伺服器發送數據並獲取應答
InputStream in = connection.getInputStream();

// 處理數據
...

} catch (Exception e) {
// 網路讀寫操作往往會產生一些異常,所以在具體編寫網路應用時
// 最好捕捉每一個具體以採取相應措施
}

2.2. Apache介面
Apache HttpClient 是一個開源項目,彌補了 java.net.* 靈活性不足的缺點,為客戶端的HTTP編程提供高效、最新、功能豐富的工具包支持。Android 平台引入了 Apache HttpClient 的同時還提供了對它的一些封裝和擴展,例如設置預設的HTTP超時和緩存大小等。早期的 Android 曾同時包括 Commons HttpClient (org.apache.commons.httpclient.*) 和 HttpComponents (org.apache.http.client.* ),不過當前版本 (1.5) 中開發者只能使用後者,也就是說類似以下的一些類:
使用這部分介面的基本操作與 java.net.* 基本類似,主要包括:
· 創建 HttpClient 以及 GetMethod / PostMethod, HttpRequest 等對象
·設置連接參數
·執行 HTTP 操作
· 處理伺服器返回結果
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.params. HttpConnectionParams;
import org.apache.http.client.params. HttpClientParams;

try {
// 創建 HttpParams 以用來設置 HTTP 參數(這一部分不是必需的)
HttpParams params = new BasicHttpParams();

// 設置連接超時和 Socket 超時,以及 Socket 緩存大小
HttpConnectionParams.setConnectionTimeout(params, 20 * 1000);
HttpConnectionParams.setSoTimeout(params, 20 * 1000);
HttpConnectionParams.setSocketBufferSize(params, 8192);

// 設置重定向,預設為 true
HttpClientParams.setRedirecting(params, true);

// 設置 user agent
HttpProtocolParams.setUserAgent(params, userAgent);

// 創建一個 HttpClient 實例
// 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
// 中的用法,在 Android 1.5 中我們需要使用 Apache 的預設實現 DefaultHttpClient
HttpClient httpClient = new DefaultHttpClient(params);

// 創建 HttpGet 方法,該方法會自動處理 URL 地址的重定向
HttpGet httpGet = new HttpGet ("http://www.test_test.com/");

HttpResponse response = client.execute(httpGet);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
// 錯誤處理,例如可以在該請求正常結束前將其中斷
httpGet.abort();
}

// 讀取更多信息
Header[] headers = response.getHeaders();
HttpEntity entity = response.getEntity();
Header header = response.getFirstHeader("Content-Type");
} catch (Exception ee) {
//
} finally {
// 釋放連接
client.getConnectionManager().shutdown();
}
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.params. HttpConnectionParams;
import org.apache.http.client.params. HttpClientParams;

try {
// 創建 HttpParams 以用來設置 HTTP 參數(這一部分不是必需的)
HttpParams params = new BasicHttpParams();

// 設置連接超時和 Socket 超時,以及 Socket 緩存大小
HttpConnectionParams.setConnectionTimeout(params, 20 * 1000);
HttpConnectionParams.setSoTimeout(params, 20 * 1000);
HttpConnectionParams.setSocketBufferSize(params, 8192);

// 設置重定向,預設為 true
HttpClientParams.setRedirecting(params, true);

// 設置 user agent
HttpProtocolParams.setUserAgent(params, userAgent);

// 創建一個 HttpClient 實例
// 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
// 中的用法,在 Android 1.5 中我們需要使用 Apache 的預設實現 DefaultHttpClient
HttpClient httpClient = new DefaultHttpClient(params);

// 創建 HttpGet 方法,該方法會自動處理 URL 地址的重定向
HttpGet httpGet = new HttpGet ("http://www.test_test.com/");

HttpResponse response = client.execute(httpGet);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
// 錯誤處理,例如可以在該請求正常結束前將其中斷
httpGet.abort();
}

// 讀取更多信息
Header[] headers = response.getHeaders();
HttpEntity entity = response.getEntity();
Header header = response.getFirstHeader("Content-Type");
} catch (Exception ee) {
//
} finally {
// 釋放連接
client.getConnectionManager().shutdown();
}
以下例子以 HttpGet 方式通過代理訪問 HTTPS 網站:
try {
HttpClient httpClient = new HttpClient();

// 設置認證的數據
httpClient.getCredentialsProvider().setCredentials(
new AuthScope("your_auth_host", 80, "your_realm"),
new UsernamePasswordCredentials("username", "password"));

// 設置伺服器地址,埠,訪問協議
HttpHost targetHost = new HttpHost("www.test_test.com", 443, "https");

// 設置代理
HttpHost proxy = new HttpHost("192.168.1.1", 80);
httpClient.getParams().setParameter
(ConnRoutePNames.DEFAULT_PROXY, proxy);

// 創建一個 HttpGet 實例
HttpGet httpGet = new HttpGet("/a/b/c");

// 連接伺服器並獲取應答數據
HttpResponse response = httpClient.execute(targetHost, httpGet);

// 讀取應答數據
int statusCode = response.getStatusLine().getStatusCode();
Header[] headers = response.getHeaders();
HttpEntity entity = response.getEntity();
} catch (Exception ee) {
//
2.3. Android介面
android.net.* 實際上是通過對 Apache 的 HttpClient 的封裝來實現的一個 HTTP 編程介面,同時還提供了 HTTP 請求隊列管理, 以及 HTTP 連接池管理,以提高並發請求情況下(如轉載網頁時)的處理效率,除此之外還有網路狀態監視等介面。
以下是一個通過 AndroidHttpClient 訪問伺服器的最簡例子:

import import android.net.http.AndroidHttpClient;

try {
AndroidHttpClient client = AndroidHttpClient.newInstance(「your_user_agent」);

// 創建 HttpGet 方法,該方法會自動處理 URL 地址的重定向
HttpGet httpGet = new HttpGet ("http://www.test_test.com/");

HttpResponse response = client.execute(httpGet);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
// 錯誤處理
}

// 關閉連接
client.close();
} catch (Exception ee) {
//
}

㈣ python sokect默認多久斷開

在 Python 裡面使用 socket 是相對簡單的,連接成功以後可以 makefile(), 然後就跟讀普通文件一樣使用socket. 我們使用 beanstalkd 的客戶度 beanstalkc 也是這樣的,實現得很簡潔。

某一天 beanstalkd 所在的伺服器不堪重負失去響應,導致整個應用被阻塞,不可用。罪魁禍首是beanstalkc,它用的是阻塞式的 socket, 不行,於是給它加了個 timeout, 就用 socket.settimeout().

自從設置了timeout, 就不斷地冒出timeout異常,而 beanstalkd 看起來卻是正常的。在給 beanstalkc 添加了多個後端支持後,居然經常出現N個後端以此超時的奇怪現象。經過調試發現,是某些比較大的對象會導致超時,不管超時時間設置多大。

原來,socket 一旦設置了timeout, 就進入了 non-blocking 工作模式,原來的 send() 和 recv() 等的用法就完全不同了,可能會只發送或者接收了部分數據,需要檢查返回值並多次重試。甚至,makefile() 是完全不允許使用的,它已經在 socket 模塊的文檔中明確聲明,不過如果不是在這里栽過跟頭很少會注意到這點。

明確了這一點,就可以寫出在 non-blocking 模式工作的正確代碼,會復雜不少,尤其處理一開始不能確定數據長度的文本協議。

阻塞和非阻塞是完全兩種不同的使用方法,並不是添加一個socket.settimeout() 那麼簡單。

㈤ 學習網路編程需要具備什麼知識基礎

學習網路編程需要具備計算機基礎知識,以及一些英語基礎,看題主描述是學習過C語言,所以算是有一定基礎的,所以如果想要學習網路編程還是比較容易的。

現在用的比較多的是java,而且java的應用范圍也比較廣,即使後面不從事網路編程,想要做其他編程類的工作也是比較容易的,所以選擇學java可能是個不錯的選擇。網路編程現在是在Windows下應用的比較廣泛,可以先從Windows下學起。

學習網路編程的方式無非兩種一種是自學,一種是去專業的學校學,選擇哪種學習方式,題主可以根據自身的時間及經濟狀況來進行選擇,畢竟適合自己的才是最好的。

㈥ 學習網路編程需要具備什麼知識基礎

網路編程>> 1.看你是從事那方面. 網路編程一般只是通過Sokect編程來實現. 用什麼語言不是重點,重點是掌握網路結構和數據的傳輸,比如TCP和UDP的編程原理. 還要安全性也很重要. 至於用什麼語言不大重要,在Linux下C語言是首選. 在Windows你可以用你喜歡的語言. 沒必要局限那種語言.因為Python在網路編程很多人用. 還有網路編程涉及知識和范圍很廣. 只有打好基礎;特別是TCP和UDP編程.

閱讀全文

與pythonsokect相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163