socket請求怎麼寫
//啓動一個線程監聽
System.Threading.Thread thread = new Thread(new ThreadStart(BeginListen));
thread.Start();
public void BeginListen()
{
//循環監聽
while(true)
{
Socket sckClient = s.Accept();
}
}
2.socket怎麼樣實現Socket就是套接字它是網絡編程中最常用遇到概念和工具在TCP/IP網絡中傳送和接收數據就會經常使用到Socket由於使用Socket能夠在網絡上處理複雜數據所以在各種網絡應用中涉及到數據傳送和接收般都會使用Socket可見要掌握網絡編程精通Socket是非常重要由於Socket本身複雜性決定了掌握它是比較困難Visual C#是微軟公司推薦開發.Net平臺應用主要語言隨着.Net深入人心目前很多有遠見公司都把以前軟件Software轉向了.Net平臺掌握網絡編程始終是學習種開發語言重點這點對於Visual C#也同樣如此Visual C#實現網絡功能.
幫助網
3.如何編寫socket套接字Socket套接字相當於網絡通信兩端的插座,只要對方的Socket和自己的Socket有通信聯接,雙方就可以發送和接收數據。其定義類似於文件句柄的定義。
如果編寫的是服務程序,那麼先調用socket()創建一個套接字,調用bind()綁定IP地址和端口,然後啓動一個死循環,循環中調用accept()接受連接。對於每個接受的連接,可以啓動多線程方式進行處理,在線程中調用send()、recv()發送和接收數據。
如果編寫的是客戶端程序,則先調用socket()創建一個套接字,然後調用connect()連接服務器,之後就是調用send()、recv()發送和接收數據了。
服務端程序編寫:
1、調用ServerSocket(int port)創建一個服務器端套接字,並綁定到指定端口上。
2、調用accept(),監聽連接請求,接收連接,返回通信套接字。
3、調用Socket類的getOutStream()和getInputStream獲取輸出和輸入流,開始網絡數據的發送和接收。
4、關閉通信套接字.Socket.close()。
客戶端程序編寫:
1、調用Socket()創建一個流套接字,並連接到服務器端。
2、調用Socket類的getOutputStream()和fetInputStream()獲取輸出流和輸入流,開始網絡數據的發送和接收。
3、關閉通信套接字.Socket.close()。
4.怎樣用 socket 寫一段程序 要求:可以實現在一臺機器上操作,然後另1、首先要有服務器程序和客戶端程序的概念,客戶端程序連接到服務器程序監聽的端口,請求數據通訊
2、自己擬定一些通訊協議
比如,一個命令包包括(包頭(2字節或4字節) 包內容(若干字節))
用2字節的包頭表示整個包的長度,保證包的完整性
比如包都得2字節能表示的長度最大是65536字節,假設包頭爲short類型 值爲 10
表示這個指令整個包長度是12字節,爲完整包
那麼第三個字節可以作爲主協議使用,第四個字節可以作爲子協議,後面8個字節可以作爲這個主協議和子協議帶入的參數
只是舉一個簡單的例子
5.如何編寫一個利用Socket通信的程序設計思路 本例包括一個服務器端程序和一個客戶端程序。
客戶端程序可以放到多個計算機上運行,同時與服務器端進行連接通信。 本例的重點,一是演示客戶端與服務器端如何通信;二是當有多個客戶端同時連接到服務器端時,服務器端如何識別每個客戶端,並對請求給出相應的回覆。
爲了保證一個客戶端斷開連接時不影響其它客戶端與服務器端的通信,同時保證服務器端能夠正確回覆客戶端的請求,在本例中聲明瞭一個記錄類型:type client_record=record CHandle: integer; //客戶端套接字句柄 CSocket:TCustomWinSocket; //客戶端套接字 CName:string; //客戶端計算機名稱 CAddress:string; //客戶端計算機IP地址 CUsed: boolean; //客戶端聯機標誌end; 利用這個記錄類型數據保存客戶端的信息,同時保存當前客戶端的連接狀態。其中,CHandle保存客戶端套接字句柄,以便準確定位每個與服務器端保持連接的客戶端;Csocket保存客戶端套接字,通過它可以對客戶端進行回覆。
Cused記錄當前客戶端是否與服務器端保持連接。 下面對組件ServerSocket和ClientSocket的屬性設置簡單說明。
ServerSocket的屬性: · Port,是通信的端口,必須設置。在本例中設置爲1025; · ServerTypt,服務器端讀寫信息類型,設置爲stNonBlocking表示異步讀寫信息,本例中採用這種方式。
· ThreadCacheSize,客戶端的最大連接數,就是服務器端最多允許多少客戶端同時連接。本例採用默認值10。
其它屬性採用默認設置即可。 ClientSocket的屬性: · Port,是通信的端口,必須與服務器端的設置相同。
在本例中設置爲1025; · ClientType,客戶端讀寫信息類型,應該與服務器端的設置相同,爲stNonBlocking表示異步讀寫信息。 · Host,客戶端要連接的服務器的IP地址。
必須設置,當然也可以在代碼中動態設置。 其它屬性採用默認設置即可。
程序源代碼: · 服務器端源碼(uServerMain.pas):unit uServerMain;interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, ToolWin, ComCtrls, ExtCtrls, StdCtrls, Buttons; const CMax=10; //客戶端最大連接數 type client_record=record CHandle: integer; //客戶端套接字句柄 CSocket:TCustomWinSocket; //客戶端套接字 CName:string; //客戶端計算機名稱 CAddress:string; //客戶端計算機IP地址 CUsed: boolean; //客戶端聯機標誌 end; type TfrmServerMain = class(TForm) ServerSocket: TServerSocket; ControlBar1: TControlBar; ToolBar1: TToolBar; tbConnect: TToolButton; tbClose: TToolButton; tbDisconnected: TToolButton; Edit1: TEdit; Memo1: TMemo; StatusBar: TStatusBar; procedure tbConnectClick(Sender: TObject); procedure tbDisconnectedClick(Sender: TObject); procedure (Sender: TObject;Socket: TCustomWinSocket); procedure ServerSocketListen(Sender: TObject;Socket: TCustomWinSocket); procedure (Sender: TObject;Socket: TCustomWinSocket); procedure (Sender: TObject;Socket: TCustomWinSocket); procedure tbCloseClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ServerSocketGetSocket(Sender: TObject; Socket: Integer; var ClientSocket: ); procedure (Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); private { Private declarations } public { Public declarations } session: array[0..CMax] of client_record; //客戶端連接數組 Sessions: integer; //客戶端連接數 end; var frmServerMain: TfrmServerMain; implementation {$R *.DFM} //打開套接字連接,並使套接字進入監聽狀態 procedure TfrmServerMain.tbConnectClick(Sender: TObject); begin ServerSocket.Open ; end; //關閉套接字連接,不再監聽客戶端的請求 procedure TfrmServerMain.tbDisconnectedClick(Sender: TObject); begin ServerSocket.Close; StatusBar.Panels[0].Text :='服務器套接字連接已經關閉,無法接受客戶端的連接請求.'; end; //從客戶端讀取信息 procedure TfrmServerMain.(Sender: TObject;Socket: TCustomWinSocket); var i:integer; begin //將從客戶端讀取的信息添加到Memo1中 Memo1.Lines.Add(Socket.ReceiveText); for i:=0 to sessions do begin //取得匹配的客戶端 if session[i].CHandle = Socket.SocketHandle then begin session[i].CSocket.SendText('回覆客戶端'+session[i].CAddress+' ==> '+Edit1.Text); end; end; end; //服務器端套接字進入監聽狀態,以便監聽客戶端的連接 procedure TfrmServerMain.ServerSocketListen(Sender: TObject;Socket: TCustomWinSocket); begin StatusBar.Panels[0].Text :='等待客戶端連接。'; end; //當客戶端連接到服務器端以後 procedure TfrmServerMain。
6.編寫一個TCP Socket程序我看盜的時候只有21個小時了,不知道是不是還能趕的上拿分!下邊給出DELPHI的源代碼!--------client---------------------------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; IdTCPClient1: TIdTCPClient; procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);beginif idtcpclient1.Connected then idtcpclient1.Disconnect ;tryidtcpclient1.Host :=edit1.Text ;idtcpclient1.Port :=strtoint(edit2.Text );idtcpclient1.Connect;exceptshowmessage('連接失敗');end;idtcpclient1.WriteLn(edit3.Text );edit3.Text :=idtcpclient1.ReadLn; end;procedure TForm1.FormDestroy(Sender: TObject);beginif idtcpclient1.Connected then idtcpclient1.Disconnect ;end;end.----------------------------------------------------------server--------------------------------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer;type TForm1 = class(TForm) IdTCPServer1: TIdTCPServer; Button1: TButton; Edit1: TEdit; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure IdTCPServer1Execute(AThread: TIdPeerThread); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1 : TForm1; i:integer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin if IdTCPServer1.Active then IdTCPServer1.Active := false; try IdTCPServer1.DefaultPort := strtoint(Edit1.Text); IdTCPServer1.Active := true; except showmessage('啓動失敗'); end;end;procedure TForm1.FormDestroy(Sender: TObject);begin if IdTCPServer1.Active then IdTCPServer1.Active := false;end;procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);var s : string;begin Memo1.Lines.Add(athread.Connection.ReadLn(s) ); ATHREAD.Connection.WriteLn(inttostr(i)); i:=i+1;end;procedure TForm1.FormCreate(Sender: TObject);begin i:=1;end;end.----------------------------------------------winXP +delphi7編譯通過。
7.安卓開發socket開發簡單例子 怎麼寫package scut;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Sock {
/**
* 服務器端
*
* @author Administrator
*
*/
// 程序入口
public static void main(String args[]) {
try {
// 建立一個ServletSocket ,監聽對應的端口,用於監聽客戶端的連接請求
ServerSocket serverSocket = new ServerSocket(40004);
while (true) { // 循環不斷接收客戶端的請求
System.out.println("等待客戶端請求。.");
Socket socket = serverSocket.accept();
// 等待接收
System.out.println("收到請求,服務器建立連接。");
// 返回數據
OutputStream os = socket.getOutputStream();
String msg = "服務器已連接成功。";
os.write(msg.getBytes("utf-8"));
os.close();
socket.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
8.socket編程怎麼寫一個客戶端和兩個服務端網絡的Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。
Socket也具有一個類似於打開文件的函數調用Socket(),該函數返回一個整型的Socket描述符,隨後的連接建立、數據傳輸等操作都是通過該Socket實現的。下面用Socket實現一個windows下的c語言socket通信例子,這裏我們客戶端傳遞一個字符串,服務器端進行接收。
【服務器端】#include "stdafx.h"#include
}// closesocket(sListen);// closesocket(sServer);// WSACleanup(); } 【客戶端】#include "stdafx.h"#include
SERVER端:--------------------------------------------------------import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Server extends Thread { private Socket clientSocket; public Server(Socket clientSocket) { this.clientSocket = clientSocket; } public void run() { DataInputStream dis = null; DataOutputStream dos = null; try { dis = new DataInputStream(clientSocket.getInputStream()); dos = new DataOutputStream(clientSocket.getOutputStream()); while (true) { String temp = dis.readUTF(); if ("over".equals(temp)) { break; } dos.writeUTF("from server:" + temp); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (dis != null) { dis.close(); } if (dis != null) { dos.close(); } if (clientSocket != null) { clientSocket.close(); } } catch (IOException e) { } } } public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(8008); while (true) { Socket clientSocket = ss.accept(); // 針對每個客戶端, 啓一個Server線程專門處理此客戶端的請求。
Server server = new Server(clientSocket); server.start(); } }}CLIENT端:----------------------------------------import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.InputStreamReader;import java.net.Socket;public class Client { public static void main(String[] args) throws Exception { // 輸入流1, 從鍵盤進入Client。 InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); Socket clientSocket = new Socket("127.0.0.1", 8008); // 輸入流2, 從服務器端進入Client的流對象。
DataInputStream dis = new DataInputStream(clientSocket.getInputStream()); // 輸出流, 從Client出去, 到服務器端。 DataOutputStream dos = new DataOutputStream(clientSocket.getOutputStream()); while (true) { // 從鍵盤輸入讀取 String msg = br.readLine(); // 將讀取信息發送給服務器端 dos.writeUTF(msg); //輸入QUIT退出 if ("QUIT".equals(msg)) { break; } //讀取從服務器返回的信息 String temp = dis.readUTF(); System.out.println(temp); } br.close(); dis.close(); dos.close(); clientSocket.close(); }}。
-
網易借錢app叫什麼
網易並沒有出專門借錢的APP產品。在網易支付APP中,有專爲優質客戶提供的專屬借款產品網易來錢,因此用戶想要申請網易借錢,需要下載安裝最新版的網易支付APP,然後在首頁點擊“來錢”,刷臉來領取授信額度。另外,網易並沒有提供其它的借款渠道,請在官方渠道申請網易的借...
-
qq創意符號暱稱怎麼起,qq創意符號暱稱
1、ょ夢の印記┊2、ら゛戒習慣。3、☆@_⌒冰點4、み旋律╰傷5、流年ミ顏色つ6、打散ウ心悸7、じ淺夏ゞ初雨8、┏零下↘1℃┫9、╰冷月殘星べ10、こ空心印っ℡11、秋末♂殘雪℡12、﹏祗剩寂寞ゞ13、7.jpg14、て辰星心語せ15、☆冷※無情★16、あ莫式じ想念、17、...
-
2023年公婆出錢婚後買房是誰的房子
法律分析:公婆出錢婚後買房是誰的房子:當事人雙方結婚之後,公婆爲了夫妻雙方婚後的生活考慮,出資購買了房屋,應當認定爲夫妻雙方的共同財產,分割時一人一半。法律依據:《最高人民法院關於適用婚姻家庭編的解釋(一)》第二十九條當事人結婚前,父母爲雙方購置房屋出資的,該出...
-
燕窩三角盞和燕盞區別
1、價格不同。三角燕盞是金絲燕將巢築在牆角形成的三角形的白色燕盞,三角燕的盞型不是那麼美觀,而且支撐巢的外圍碎片比較多,直接降低了三角燕的市場價值,所以賣不出好價錢。價格一般低於普通的燕盞,但是營養價值相同。2、形狀不同。燕窩最好的部位是盞身,也就是燉出...