A. 兩個人聊QQ發消息的實現過程(利用計算機網路的原理解釋)
你好,很高興回答你的問題。
兩個人擁有賬號,調用了資料庫。
聊天用到了軟體時實傳輸,將打的字在單擊發送的時候,通過傳輸線路,加密,到達伺服器,通過伺服器解密,再加密進行數據傳輸到達對方的窗口顯示。
希望能夠幫到你。
B. 求區域網內發送消息的代碼。要求如下 批處理或者vbs都可以 要求: 只要運行就發送消息到指定的IP
net send 192.168.1.111 "請不要在上班時間看在線視頻,謝謝!"
C. 如何用C語言實現區域網內一台計算機向伺服器發送信息(比如說字元串),要通過TCP協議。
socket()
msgsnd()
D. 如何用C++代碼向發消息
網路文庫中搜索「WindowsAPI函數清單」,接近尾聲那裡有你想要的
E. javaweb寫的聊天網頁是如何向客戶端發送消息
你說的這個是一種推送技術,由伺服器主動將數據推送給客戶端
Tomcat8已經很好的支持web socket 了webSocket已經慢慢普及與Html5做這樣的推送
而你用javaweb的話,直接導入Tomcat.jar就可以使用webSocket了
網上有很多例子
F. 如何實現區域網發送信息
需要使用net send * 「內容」這個命令發送,但是需要打開messenger服務,在xp裡面默認是關閉的,需要手動打開,98和2000默認是打開的。
G. 如何用tcp協議實現網路聊天
使用TCP/IP協議實現聊天程序
TCP/IP協議的傳輸即面向點到點的傳輸方式!
1.創建應用程序。
選擇「NEW」菜單下的「Application」選項,創建一個普通的應用程序。
2.創建所需控制項。
首先在控制項欄的Win32頁中選擇ImageList控制項和CoolBar控制項,再從Win32欄選擇ToolBar控制項放置到CoolBar
控制項上。用滑鼠右鍵單擊「ImageList」控制項,在彈出的菜單中選擇「ImageList Editer...」選項,彈出
「ImageList Editer」對話框,單擊「Add...」按鈕,選擇5幅點陣圖。在對象管理器Object Inspector中將
ToolBar控制項的Image屬性設為「ImageList1」,用滑鼠右鍵單擊「ToolBar」控制項,選「New Button」選項,
總共創建5個ToolButton,在 對象管理器中將5個ToolButton的ImageIndex屬性分別設置為0,1,2,3,4。
此時ImageList控制項中的5幅點陣圖將會分別顯示在Toolbutton上,將5個ToolButton控制項的ShowHint屬性全都設
置為「ture」,並將它們的Hint屬性分別設置為「監聽」、「連接」、「斷開連接」、「更改你的昵稱」和
「退出聊天程序」。
然後在窗體中放置一個Edit控制項、Memo控制項、StatusBar控制項和一個Label控制項。將Label控制項的Caption屬性
設置為「輸入框」。
最後,也是最關鍵的,在控制項欄的Internet頁中選擇SeverSocket控制項和ClientSocket控制項放置在窗體中,將
SeverSocket控制項和ClientSocket控制項的Port屬性設置為「1100」。SeverSocket控制項是基於TCP/IP協議傳輸
的伺服器方的控制項,它的主要作用是用來監聽其它基於TCP/IP傳輸計算機的連接請求,並在收到連接請求時
建立連接,進行數據傳輸,ClientSocket控制項是基於TCP/IP傳輸的客戶方的控制項,它的主要作用是向監聽
TCP/IP傳輸的伺服器發出連接請求,在收到伺服器的允許連接的響應後,建立連接,並傳輸數據,之所以在
窗體中同時創建ServerSocket和ClientSocket控制項,是因為應用程序既可作為伺服器,又可作為客戶端使用。
3.Serversocket和ClientSocket之間的連接
首先設置兩個全局變數:
NickName:string;
b_Client:boolean;
其中NickName用於放聊天人的名稱,b_Client用於表明應用程序是否作為客戶端進行數據傳輸。
在窗體Form1的Oncreate事件中初始化變數,代碼如下:
procere TForm1.FormCreate(Sender:TObject);
begin
NickName:+="我的昵稱";
b_Client:=ture;
end;
雙擊ToolButton1,編寫伺服器監聽代碼如下:
procere TForm1.Toolbutton1Click(Sender:TObject);
begin
ClientSocket1.close;
ServerSocket1.open;
StatusBar1.SimpleText:='開始監聽』;
end;
雙擊ToolButton2,編寫客戶的申請連接,代碼如下:
procere TForm1.ToolButton2Click(Sender:TObject);
var s:string;
begin
if Clientsocket1.Active then
ClientSocket1.close;
if InputQuery('連接到計算機','要連接的計算機名稱或IP地址:',s) then
if Length(s)>0 then
with ClientSocket1 do
begin
Host:=s;
open;
end;
end;
在對象管理器中,雙擊ClientSocket事件頁的OnConnecting事件,編寫處理客戶等待連接請求,代碼
如下:
procere TForm1.ClientSocket1Connecting(Sender:TObject;Socket:TCustomWinSocket);
begin
StatusBar1.SimpleText:='等待來自'+Socket.RemoteAddress+'的連接允許響應...';
end;
在對象管理器中,雙擊SeverSocket事件頁的OnAccept事件,處理伺服器響應連接事件,代碼如下:
procere TForm1.SeverSocket1Accept(Sender:TObject;Socket:TCustomWinSocket);
begin
b_Client:=false;
StatusBar1.SimpleText:='連接到'+Socket.RemoteAddress;
end;
在對象管理器中,雙擊ClientSocket事件頁的OnConnect事件,OnConnect事件在連接成功時被調用,代碼如下:
procere TForm1.ClientSocket1Connect(Sender:TObject;Socket:TCustomWinSocket);
begin
b_Client:=ture;
StatusBar1.SimpleText:='連接成功';
end;
4.ServerSocket和ClientSocket之間的數據傳輸
聊天的內容是通過Edit控制項輸入並在敲回車鍵後顯示在Memo控制項中,再傳輸到與之連接的計算機中。
Edit的OnKeyDown事件代碼如下:
procere TForm1.Edit1KeyDown(Sender:TObject;var Key:Word;Shift:TShiftState);
begin
if Key=VK_Return then
begin
Memo1.Lines.Add(NickName+':'+Edit1.Text0;
if b_Client then
ClientSocket1.Socket.SendText(Memo1.Lines[Memo1.lines.Count-1])
else
ServerSocket1.Socket.Connections[0].SendText(Memo1.Lines[Memo1.lines.Count-1]);
end;
end;
在ServerSocket控制項的onread事件中編寫伺服器接收到數據後的動作,代碼如下:
procere TForm1.ServerSocket1ClientRead(Sender:TObject;Socket:TCustomWinSocket);
begin
Memo1.lines.Add(Socket.ReceiveText);
end;
在ClientSocket控制項的onread事件中編寫客戶端接收到數據後的動作,代碼如下:
procere TForm1.ClientSocket1Read(Sender:TObject;Socket:TCustomWinSocket);
begin
Memo1.lines.Add(Socket.ReceiveText);
end;
5.斷開Serversocket和ClientSocket之間的連接
雙擊ToolButton3,編寫客戶端斷開的處理過程,代碼如下:
procere TForm1.ToolButton3Click(Sender:TObject);
begin
ClientSocket1.close;
StatusBar1.SimpleText:='斷開連接';
end;
編寫伺服器響應客戶端斷開的處理過程,代碼如下:
procere TForm1.ServerSocket1ClientDisconnect(Sender:TObject;Socket:TCustomWinSocket);
begin
SeverSocket1.close;
StatusBar1.SimpleText:='斷開連接';
end;
6.更改聊天者的昵稱
雙擊Toolbutton4,編寫更改昵稱代碼如下:
procere TForm1.ToolButton4Click(sender:TObject);
var
s:string;
begin
if InputQuery('更改昵稱','你的新昵稱',s) then
if Length(s)>0 then
NickName:=s;
end;
7.退出應用程序
雙擊Toolbutton5,編寫退出應用程序代碼如下:
procere TForm1.ToolButton5Click(sender:TObject);
ClientSocket1.close;
ServerSocket1.close;
Form1.close;
end;
8.保存並運行應用程序
最好在網上運行該程序,如果沒聯網,但你的計算機支持TCP/IP協議(可以通過網路鄰居安裝TCP/IP協議),
你可以在你的計算機上從「我的電腦」中運行該應用程序的兩個實例。運行後,將一個聊天程序作為伺服器監
聽,另一個聊天程序作為客戶與伺服器連接並聊天。區域網中同樣可以運行!!!
H. 怎麼 開始->運行 然後輸入一段代碼 就可以 給區域網的同志 發個及時消息
net send /domain:工作組名稱 要發送的消息內容
I. 急求C#區域網聊天器代碼 能實現簡單的消息發送 消息接受 多人聊天功能 謝謝
http://www.cnblogs.com/justnow/p/3382160.html
自己下載吧,有源碼。
J. 如何用java實現一個簡單網路通信過程
你說的我明白。如果真正使用alohal協議的時候,所有的機器都可以檢測網路電平變化的是吧?但是使用Java編寫模擬程序的話,我們並不能可能檢測電平的變換,只能通過一定的手段來模擬這個過程。如果你將一個包裹群發,這樣所有的機器都可以接受這個包,這樣就可以做到所有機器模擬檢測電平變化的這個要求。我認為這個是最有說服力的模擬方法了。
線程需要使用Thread類型,重寫裡面的run函數,調用start()啟動線程,具體可以搜索一把Thread,例子遍地都是。
UDP協議使用Socket類型,初始化的時候參數裡面綁定(或者初始化好以後直接調用bind綁定埠,一般輸出不用綁定,監聽的時候需要綁定)。調用裡面的getOutputStream得到輸入流。調用getInputStream得到輸入流。
OutputStream:輸出流,用於向網路中輸出數據。調用其中的write函數進行輸出,函數的參數就是輸出的byte數組。
InputStream: 輸入流,用於接受網路裡面的數據。調用其中的read可以得到輸入的包。
String:你要輸出的字元串,調用裡面的getBytes可以得到String的byte數組。
其它的應該用不到什麼了吧。
**********************************
1.發送字元串的話用byte[]就可以啊。用Socket類裡面的getOutputStream可以獲得一個發送數據的OutputStream類對象。這個類對象有一個函數write(byte[] b) 可以向網路寫byte[]。一個字元串可以通過String類中的getBytes() 轉化成byte[]。這樣總該明白了吧
2.說一下我的思路:開一個埠A發送UDP包(廣播給埠B),用於模擬發送,用一個線程(線程1)來跑。開埠B接受區域網內的包,用另外一個線程(線程2)來跑。在發送UDP包的時候,將變數mark置1,發送完置0。線程2如果接受到一個不是從本機發送的包,而且此時mark是1(說明本機和另外一個機器同時在發包),發生了沖突,表示線程1這次發送的包失敗。