Socket通訊之客戶端和伺服器對話
科技改變時代……
1/Socket
1,什麼是Socket
網路上的兩個程式通過一個雙向的通訊連線實現資料的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現客戶方和服務方的連線。Socket是TCP/IP協議的一個十分流行的程式設計介面,一個Socket由一個IP地址和一個埠號唯一確定。
但是,Socket所支援的協議種類也不光TCP/IP一種,因此兩者之間是沒有必然聯絡的。在Java環境下,Socket程式設計主要是指基於TCP/IP協議的網路程式設計。
2,Socket通訊的過程
Server端Listen(監聽)某個埠是否有連線請求,Client端向Server 端發出Connect(連線)請求,Server端向Client端發回Accept(接受)訊息。一個連線就建立起來了。Server端和Client 端都可以通過Send,Write等方法與對方通訊。
對於一個功能齊全的Socket,都要包含以下基本結構,其工作過程包含以下四個基本的步驟:
(1) 建立Socket;
(2) 開啟連線到Socket的輸入/出流;
(3) 按照一定的協議對Socket進行讀/寫操作;
(4) 關閉Socket.(在實際應用中,並未使用到顯示的close,雖然很多文章都推薦如此,不過在我的程式中,可能因為程式本身比較簡單,要求不高,所以並未造成什麼影響。)
2/檔案複製
//檔案複製
File f=new File("d://11.txt");
File fcopy=new File("d://22.txt");
if (!fcopy.exists()){//如果不存在
try {
fcopy.createNewFile();//建立一個新檔案22.text
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = new FileOutputStream(fcopy);
byte[] array = new byte[1024];//每次讀1024個位元組
int i = fis.read(array);
while(i != -1){
fos.write(array, 0, i);//從array陣列中第一個元素開始讀,讀到第i個。
i = fis.read(array);
}
fos.flush();
fos.close();
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
網路連線
實現客戶端於服務端的對話
集合
HashMap
排序,比較
遍歷輸出:
1、
list.add("藏獒 小貝");
list.add("京巴 笨笨");
Iterator<String> iter=list.iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
}
System.out.println(list.get(0));
//輸出:藏獒 小貝
// 京巴 笨笨
2、
ArrayList<Student> list = new ArrayList<>();
Student s = new Student("李四", "北京");
list.add(new Student("張三", "上海"));
list.add(new Student("王五", "青島"));
list.add(new Student("馬六", "煙臺"));
Collections.reverse(list);//反轉
for (Student stu : list) {
System.out.println(stu.getName()+stu.getHometown());
}
/*輸出:馬六 煙臺
王五 青島
張三 上海
李四 北京*/
3、
HashMap<String,Student> map = new HashMap<>();
map.put("lisi", new Student("李四","北京"));
map.put("wangwu", new Student("王五","濰坊"));
map.put("maliu", new Student("馬六","青島"));
System.out.println(map.size());
Set<String> keys =map.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext()){
String key = it.next();
Student stu = map.get(key);
System.out.println(stu.getName()+stu.getHometown());
}
/* 輸出:李四 北京
王五 濰坊
馬六 青島 */
相關推薦
Socket通訊之客戶端和伺服器對話
科技改變時代…… 1/Socket 1,什麼是Socket 網路上的兩個程式通過一個雙向的通訊連線實現資料的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現客戶方和服務方的連線。Socket是TCP/IP協議的一個十分流行的程
socket通訊:客戶端和伺服器的簡單實現
什麼是socket? socket最開始的含義是一個地址和埠對(ip, port)。Socket又稱"套接字",應用程式通常通過"套接字"向網路發出請求或者應答網路請求。 socket地址API:它唯一的表示了使用tcp通訊的一端,也可以將其理解成socket地址。 socket
C# 利用Socket類實現客戶端和伺服器之間的通訊,可在本機之間實現資訊互動
利用Socket類實現了本機之間的客戶端與服務端的資訊互動。 伺服器: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using
Java Socket應用(五) 基於UDP的Socket通訊之客戶端
UDPClient.java package com.yijia; import java.io.IOException; import java.net.*; /** * 建立時間:2018/10/4 15:44 * 作者: * 郵箱:[email p
java與c語言之間的socket通訊—c客戶端java伺服器端
寫在前面的宣告:程式例子均執行在ubuntu(是一個以桌面應用為主的Linux作業系統)上。當然你也可以把java執行在其它系統上,這裡只是為了方便。 上一篇文章已經說明了關於socket的一些知識,but這是遠遠不夠的,我相信只要你感興趣,學習它並不是什麼難事。 好吧,我
Android簡單實現Socket通訊,客戶端連線伺服器後,伺服器向客戶端傳送文字資料
案例實現的是簡單的Socket通訊,當客戶端(Android客戶端)連線到指定伺服器以後,伺服器向客戶端傳送一句話文字資訊(你可以拓展其它的了) 先看一下服務端程式的實現吧 Server.java import java.io.IOException;
Linux下c語言實驗Websocket通訊 含客戶端和伺服器測試程式碼
Websocket是一種可雙向通訊的網路協議,其底層的資料收發是基於socket的,所以使用c語言來實現理論上是沒有問題的,主要難點在於協議中要求對個別資料進行加密處理,這些加密方法(庫)在java、c#等專門開發web的平臺中都是自帶的API(隨調隨到),而在用到c
socket bind在客戶端和伺服器端使用的區別
1、client bind (1)bind埠 由程序選擇一個埠去連伺服器,(如果預設情況下,呼叫bind函式時,核心指定的埠是同一個,那麼呼叫多個呼叫了bind()的client程式,會出現埠被佔用的錯誤)注意這裡的埠是客戶端的埠。如果不分配,指定埠0,就表示交給核心去選擇
網路程式設計(InetAddress類、Socket和ServerSocket、實現客戶端和伺服器之間的雙向通訊)
網路程式設計的底層是IO,通過IO將一臺計算機中的資料傳送到另一臺計算機中。傳送的時候,要知道接受方的地址,該地址即為IP地址。知道IP地址後即可進行傳送。A向B發訊息,訊息是發過去了,但是B要怎樣接受呢?因此定義了埠,B監聽了A所使用的埠。A發的訊息中含有埠號,當B接受到訊息時,知道了埠號
java socket 多客戶端和伺服器的通訊
所謂可以多客戶端,就是需要在伺服器端進行多執行緒程式設計,每一個客戶端對應一個執行緒。如果要實現時時通訊和話,無論是客戶端還是伺服器端都要至少兩個執行緒,主執行緒進行傳送資訊,子執行緒進行獲取資訊,這樣可以保證時時通訊.下面貼出我的程式碼:客戶端:package
linux網路程式設計之用socket實現簡單客戶端和服務端的通訊(基於TCP)
一、介紹基於TCP協議通過socket實現網路程式設計常用API 1、讀者如果不是很熟悉,可以先看我之前寫的幾篇部落格,有socket,地址結構的理解,更加方便讀者理解 地址分別是: 2、socket(TCP)程式設計API簡介 1)、socket int s
linux網路程式設計之用socket實現簡單客戶端和服務端的通訊(基於UDP)
1、sendto和recvfrom函式介紹 sendto(經socket傳送資料) 相關函式 send , sendmsg,recv , recvfrom , socket 表頭檔案 #include < sys/types.h >#includ
Socket 通訊原理(Android客戶端和伺服器以TCP&&UDP方式互通)
ZERO、前言 有關通訊原理內容是在網上或百科整理得到,程式碼部分為本人所寫,如果不當,還望指教。 一、Socket通訊簡介 Android與伺服器的通訊方式主要有兩種,一是Http通訊,一是Socket通訊。兩者的最大差異在於,http連線使用的是“請求—響應方式
java socket 客戶端和伺服器端互相通訊(聊天)
客戶端: package com.lzx.socket; import java.io.BufferedReader; import java.io.IOException; import jav
用 socket 通訊寫出客戶端和伺服器端的通訊 , 要求客戶傳送資料後能夠回顯相同的資料
比較基礎的一個服務端客戶端互相通訊的程式/** * @author john socket 的伺服器端,接收到資料後列印到控制檯 的資料 * */ public class ServiceSocket_1 { public static void main(
linux網絡編程之用socket實現簡單客戶端和服務端的通信(基於UDP)
服務端 msg ets lin fgets err n) stderr tcp 單客戶端和服務端的通信(基於UDP) 代碼 服務端代碼socket3.c #include<sys/types.h> #include<sys/socket.h>
Java Socket多個客戶端與伺服器通訊
client程式碼: package com.cqut.test4; import java.io.*; import java.net.Socket; import java.net.SocketException; import java.net.U
java使用UDP來進行客戶端和伺服器端通訊的簡單例子
1:客戶端程式 package com.pb.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.Unk
C語言 Socket入門示例1—— 單工通訊(客戶端向伺服器傳送訊息)
如果對Windows API不太熟悉、對TCP/IP通訊協議不太熟悉,或者對C語言本身不太熟悉的話,學習Socket會有點難受的。以前學習作業系統的時候,被API嚇怕了,很多莫名其妙的API有著多如牛毛的引數,令人費解。學習計算機網路的時候,又有那麼多的協議
建立資料庫並實現TCP通訊,客戶端登陸伺服器身份驗證之服務端程式設計
m_pRecordsetB->Open((_variant_t)flsql,dlg->m_pConnectionB.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);//開啟資料庫獲得符合條件