如何在客戶端上建立socket與伺服器端連線包括

2021-10-01 05:22:46 字數 3936 閱讀 2935

1樓:匿名使用者

進入mysql,建立一個新使用者xuys:

格式:grant 許可權 on 資料庫名.表名 使用者@登入主機 identified by "使用者密碼";

grant select,update,insert,delete on *.* to [email protected].

88.234 identified by "xuys1234";

檢視結果,執行:

use mysql;

select host,user,password from user;

可以看到在user表中已有剛才建立的xuys使用者。host欄位表示登入的主機,其值可以用ip,也可用主機名,

將host欄位的值改為%就表示在任何客戶端機器上能以xuys使用者登入到mysql伺服器,建議在開發時設為%。

update user set host = '%' where user = 'xuys';

2、 ./mysqladmin -uroot -p21century reload

./mysqladmin -uroot -p21century shutdown

3、./mysqld_safe --user-root &

記住:對授權表的任何修改都需要重新reload,即執行第3步。

如果經過以上3個步驟還是無法從客戶端連線,請執行以下操作,在mysql資料庫的db表中插入一條記錄:

use mysql;

insert into db values('192.168.88.

234','%','xuys','y','y','y','y','y','y','y','y','y','y','y','y');

update db set host = '%' where user = 'xuys';

重複執行上面的第2、3步。

2樓:匿名使用者

客戶端原始碼(uclientmain.pas):

unit uclientmain;

inte***ce

uses

windows, messages, sysutils, classes, graphics, controls, forms, dialogs,

scktcomp, comctrls, toolwin, extctrls, stdctrls, buttons;

const

sockethost = '172.16.1.6'; //伺服器端地址

type

tfrmclientmain = class(tform)

controlbar1: tcontrolbar;

*******1: t*******;

tbconnected: ttoolbutton;

tbsend: ttoolbutton;

tbclose: ttoolbutton;

tbdisconnected: ttoolbutton;

clientsocket: tclientsocket;

edit1: tedit;

memo1: tmemo;

statusbar: tstatusbar;

btnsend: tbitbtn;

procedure tbconnectedclick(sender: tobject);

procedure tbdisconnectedclick(sender: tobject);

procedure clientsocketread(sender: tobject; socket: tcustomwinsocket);

procedure tbsendclick(sender: tobject);

procedure tbcloseclick(sender: tobject);

procedure formshow(sender: tobject);

procedure clientsocketconnect(sender: tobject;

socket: tcustomwinsocket);

procedure clientsocketconnecting(sender: tobject;

socket: tcustomwinsocket);

procedure clientsocketdisconnect(sender: tobject;

socket: tcustomwinsocket);

procedure formclose(sender: tobject; var action: tcloseaction);

procedure clientsocketerror(sender: tobject; socket: tcustomwinsocket;

errorevent: terrorevent; var errorcode: integer);

private

public

end;

socket程式設計中為什麼client端的可以不用bind函式繫結.而客戶端必須呢?

3樓:匿名使用者

因為伺服器端是被動等待的,他始終處於被動等待的狀態,應客戶端的請求而工作;客戶端是主動連線伺服器端的,需要進行繫結。

如何用.net remoting實現一個客戶端需要連線多個伺服器端

4樓:周啟萌

1、使用socekt通訊一般步驟

1)伺服器端:socker()建立套接字,繫結(bind)並監聽(listen),用accept()等待客戶端連線。

2)客戶端:socker()建立套接字,連線(connect)伺服器,連線上後使用send()和recv(),在套接字上寫讀資料,直至資料交換完畢,closesocket()關閉套接字。

3)伺服器端:accept()發現有客戶端連線,建立一個新的套接字,自身重新開始等待連線。該新產生的套接字使用send()和recv()寫讀資料,直至資料交換完畢,closesocket()關閉套接字。

2、多個客戶端同時連線在一個伺服器上

這時候伺服器端應該使用多執行緒,每連線上一個客戶端就給該客戶端開啟一個執行緒。監聽埠的時候也要單獨開一個執行緒、不然會阻塞主執行緒。這樣做有一個明顯的缺點,就是有n個客戶端請求連線時,就會有n個執行緒,對程式的效能和計算機的效能影響很大,可以使用執行緒池進行管理。

使用執行緒池的好處:主要用於減少因頻繁建立和銷燬執行緒帶來開銷,因此那些經常使用且執行時間短的執行緒需要用執行緒池來管理。

3、c#版**如下

伺服器端**:

[html] view plain copy

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.net;

using system.net.sockets;

using system.threading;

using system.io;

namespace sockserver

}catch

finally

}} class work

}} 客戶端**:

[html] view plain copy

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.net;

using system.net.sockets;

using system.threading;

using system.io;

namespace sockclient

//關閉連線

tclient.close();

} }}

如何在android客戶端實時監控websocket長連線時服

使用socket類中的poll方法bai,就可以。socket client 假如du已經建立好zhi了,連線到服務dao器端得socket的客戶端物件。專 我們只要client.poll 10,selectmode.selectread 判斷就行了。屬只要返回true是。就可以認為客戶端已經斷開了...

win7旗艦版用iNode智慧客戶端上網連線時顯示網路連線中斷 請檢查連線裝置

這個情況在學校裡很常見。修過好多電腦,都是這個問題。最簡單的就是把高階版的網絡卡驅動解除安裝掉,win7會自動安裝網絡卡里面的低階版本網絡卡驅動,這樣子有修好的,可能是驅動相容性問題。再就是有上傳ipv6地址沒有取消掉的,在屬性裡面。還有的,剛剛裝完什麼東西,比如遊戲等等,需要重啟一下才能實現網絡卡...

蘋果版的晉江文學網的客戶端上的收藏書籍怎麼刪除,看著很煩

你好朋友 悲傷悲哀 有人悲哀那是因為那些人不懂得珍惜和尊重也在浪費時間也回浪費空氣更浪費人生,有答人悲傷那因為有些人有了自己的人生的色彩卻有困難通通所以才感到悲傷,看著別人比自己好時卻那些人不懂得珍惜時也有了悲哀感覺。晉江文學城手機版怎麼刪除收藏裡自己弄的分類列表 點進收藏夾,點開右上角的向下箭頭,...