socket中文亂碼怎么解決呢?不知道的小伙伴來(lái)看看小編今天的分享吧!
socket服務(wù)端和客戶端編碼方式不一致將有可出現(xiàn)中文亂碼問(wèn)題,因此兩邊設(shè)成一樣即可。
socket服務(wù)端發(fā)送數(shù)據(jù)時(shí)設(shè)置編碼方式:
PrintWriter output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"),true);
output.println("你好");
客戶端接收數(shù)據(jù)時(shí)設(shè)置編碼方式:
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
System.out.println(input.readLine());
拓展資料:
socket是什么?
所謂套接字(Socket),就是對(duì)網(wǎng)絡(luò)中不同主機(jī)上的應(yīng)用進(jìn)程之間進(jìn)行雙向通信的端點(diǎn)的抽象。一個(gè)套接字就是網(wǎng)絡(luò)上進(jìn)程通信的一
端,提供了應(yīng)用層進(jìn)程利用網(wǎng)絡(luò)協(xié)議交換數(shù)據(jù)的機(jī)制。從所處的地位來(lái)講,套接字上聯(lián)應(yīng)用進(jìn)程,下聯(lián)網(wǎng)絡(luò)協(xié)議棧,是應(yīng)用程序通過(guò)
網(wǎng)絡(luò)協(xié)議進(jìn)行通信的接口,是應(yīng)用程序與網(wǎng)絡(luò)協(xié)議棧進(jìn)行交互的接口。
套接字是通信的基石,是支持TCP/IP協(xié)議的路通信的基本操作單元??梢詫⑻捉幼挚醋鞑煌鳈C(jī)間的進(jìn)程進(jìn)行雙間通信的端點(diǎn),它構(gòu)
成了單個(gè)主機(jī)內(nèi)及整個(gè)網(wǎng)絡(luò)間的編程界面。套接字存在于通信域中,通信域是為了處理一般的線程通過(guò)套接字通信而引進(jìn)的一種抽象
概念。套接字通常和同一個(gè)域中的套接字交換數(shù)據(jù)(數(shù)據(jù)交換也可能穿越域的界限,但這時(shí)一定要執(zhí)行某種解釋程序),各種進(jìn)程使用
這個(gè)相同的域互相之間用Internet協(xié)議簇來(lái)進(jìn)行通信 。
Socket(套接字)可以看成是兩個(gè)網(wǎng)絡(luò)應(yīng)用程序進(jìn)行通信時(shí),各自通信連接中的端點(diǎn),這是一個(gè)邏輯上的概念。它是網(wǎng)絡(luò)環(huán)境中進(jìn)程間
通信的API(應(yīng)用程序編程接口),也是可以被命名和尋址的通信端點(diǎn),使用中的每一個(gè)套接字都有其類型和一個(gè)與之相連進(jìn)程。通信時(shí)
其中一個(gè)網(wǎng)絡(luò)應(yīng)用程序?qū)⒁獋鬏數(shù)囊欢涡畔?xiě)入它所在主機(jī)的 Socket中,該 Socket通過(guò)與網(wǎng)絡(luò)接口卡(NIC)相連的傳輸介質(zhì)將這段信
息送到另外一臺(tái)主機(jī)的 Socket中,使對(duì)方能夠接收到這段信息。 Socket是由IP地址和端口結(jié)合的,提供向應(yīng)用層進(jìn)程傳送數(shù)據(jù)包的
機(jī)制。
以上就是小編今天的分享了,希望可以幫助到大家。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com