多執行緒socket程式設計示例
package com.my.socket.common; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; /** * socket傳送端 * * @author ZY * */ public class Client {/** * 傳送socket請求,返回伺服器處理結果字串 * * @param ip * @param port * @param timeout * @param requestJsonMsg * @return * @throws IOException */ public static String sendSocketRequest(String ip, int port, int timeout, String requestJsonMsg) throws IOException { String res= null; Socket socket = null; BufferedReader br = null; BufferedWriter out = null; try { socket = new Socket(ip, port); socket.setSoTimeout(timeout); System.out.println("現在客戶端發起了一個socket請求,客戶端[ip=" + socket.getLocalAddress() + ",port=" + port + "],服務端[ip=" + ip + ",port=" + port + "]");// 傳送訊息 requestJsonMsg = requestJsonMsg + Constant.LINESEPARATOR; out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), Constant.CHARCODE_UTF8)); out.write(requestJsonMsg); out.flush(); // 接收伺服器的反饋 br = new BufferedReader(new InputStreamReader(socket.getInputStream(), Constant.CHARCODE_UTF8)); res = br.readLine(); } catch (IOException e) { e.printStackTrace(); throw e; } finally { try { if (socket != null) socket.close(); } catch (IOException e) { e.printStackTrace(); } try { if (br != null) br.close(); } catch (IOException e) { e.printStackTrace(); } if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } return res; } public static void main(String[] args) throws IOException { String ip = "10.5.109.184"; int port = 8088; int timeout = 1000 * 60 * 5; String requestJsonMsg = "{\"markId\":1,\"ID\":\"02\",\"goods_id\":\"1\",\"markContent\":\"測試\",\"userNickname\":\"hello\"}"; String res = sendSocketRequest(ip, port, timeout, requestJsonMsg); System.out.println("res=" + res); } }
相關推薦
多執行緒socket程式設計示例
package com.my.socket.common; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamR
linux基礎程式設計 套接字socket 完整的伺服器端多執行緒socket程式
此段程式來自我的一個專案中,稍微做了些修改,執行穩定,客戶端程式比較簡單所以未編寫,可以用socket除錯工具測試此段程式碼 費話不多說,直接上程式碼 #include<stdlib.h> #include<stdio.h> #include&
linux 下多執行緒epoll程式設計 -socket
轉載自:http://blog.csdn.net/susubuhui/article/details/37906287 Linux socket+epoll+pthread+佇列 實現併發伺服器。程式碼有封裝,僅做參考 Linux下多執行緒epoll程式設計,在高併發下測
C#網路程式設計(二)------多執行緒socket例項
伺服器端程式碼: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using Sys
33-多執行緒--賣票示例+執行緒安全(產生原因+解決方式:同步)+同步(同步程式碼塊+同步的好處與弊端+同步的前提+同步函式+賣票示例的同步函式寫法+驗證同步函式的鎖+驗證靜態同步函式的鎖)
一、賣票示例 需求:四個視窗,同時售賣100張票,票號為1-100 1、沒有多執行緒時的賣票程式碼 class Ticket { //100張票 private int num = 100; public void sale() { /
網際網路架構多執行緒併發程式設計高階教程(上)
#基礎篇幅:執行緒基礎知識、併發安全性、JDK鎖相關知識、執行緒間的通訊機制、JDK提供的原子類、併發容器、執行緒池相關知識點 #高階篇幅:ReentrantLock原始碼分析、對比兩者原始碼,更加深入理解讀寫鎖,JAVA記憶體模型、先行發生原則、指令重排序 #環境說明:idea、ja
簡單的多執行緒socket
1.socket 伺服器搭建 例項化socket伺服器,迴圈獲取請求 package com.orange.util; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java
多執行緒處理多執行緒網路程式設計問題
1、 一個伺服器,多個客戶端訪問。 2、多個伺服器多執行緒接收多個客戶端,但是埠號是固定的。 java 網路程式設計之TCP +多執行緒 + 執行緒池 資料: https://blog.csdn.net/tanghui270270/article/details/80603199
學了Java併發程式設計藝術及多執行緒核心程式設計技術,以及最開始學的程式設計思想那本書,今天做些總結
併發Map分析位碼shift預設值是28,對hash值右移28位,取高四位,獲得segments位置,掩碼mask預設值16-1,作一個與值,不知道有何用處,兩個都是不可修改,初始值和併發度有關,一旦確立下來決定了segments陣列大小,包括segments陣列物件不可修改
boost庫多執行緒(Thread)程式設計(執行緒操作,互斥體mutex,條件變數)
轉載地址: 1 建立執行緒 就像std::fstream類就代表一個檔案一樣,boost::thread類就代表一個可執行的執行緒。預設建構函式建立一個代表當前執行執行緒的例項。一個過載的建構函式以一個不需任何引數的函式物件作為引數,並且沒有返回值。這個建構函式建立
Java8學習計劃--關於多核多執行緒併發程式設計-Java8-CompletableFuture 1的介紹
零零散散接近一個月的課餘時間,學完Java8InAction和Guava,感觸很多,收穫也很大,特別開心,接下來會利用空餘時間學習Spark,希望自己在技術上慢慢積累,越來越從容。對於Java8 最大的改變是lambda表示式 Collecotors CompletableF
Linux C: 基於C/S的多執行緒網路程式設計 2 (多客戶端)
客戶端: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/type
多執行緒+Socket實現多使用者多功能並行請求的服務端設計
目的:本次要實現的目的時,服務端中每一個業務邏輯功能對應開啟一個埠,這些埠同時開啟,並且在該埠中可以同時接收多客戶端同時請請求。並行執行自然要用到多執行緒的知識,這裡不深入探討多執行緒的技術,簡單的應用即可。多執行緒的簡單實現程式碼:1、new一個Thread類物件2、重寫T
Tilera多執行緒網路程式設計總結
http://blog.csdn.net/zwleagle/article/details/8851400 http://blog.sina.com.cn/s/blog_a574f78401015v2o.html http://www.dssz.com/13413
Linux下多執行緒(pthread)程式設計例項
Linux系統下的多執行緒遵循POSIX執行緒介面,稱為 pthread。編寫Linux下的多執行緒程式,需要使用標頭檔案pthread.h,連線時需要使用庫libpthread.a。順便說一下,Linux 下pthread的實現是通過系統呼叫clone()來實現的。clon
python多執行緒threading下載示例
#coding:utf-8 # windows中測試不通過,下載的圖片不完整 # 通過多執行緒下載圖片 import requests import threading class do
關於mfc下多執行緒socket出錯
問?: 我用CSocket寫通訊程式,但執行到下面的函式時總出錯,是什麼原因? 是多執行緒通訊,每個執行緒建立了一個套接字:CMySocket *m_pClientSocket = New CMySocket; 然後在OnSendSocket函式中呼叫:m_pCli
實現伺服器端的多執行緒SOCKET Server C++/VC 【轉】
想要實現的功能:在伺服器端有一個控制檯程式(或者Windows服務),與多個客戶端程式通訊,其中主執行緒有一個socket繫結在一個固定埠上,負責監聽客戶端的Socket資訊。每當啟動一個客戶端程式,客戶端傳送來一個socket連線請求,server端就新開啟一個執行緒,並在
WSAEventSelect多執行緒伺服器實現示例
從CSDN的一個xd那裡看到這個程式碼,覺得對WSAEventSelect模型的多執行緒實現做的非常好,程式碼行文風格和程式碼質量都是非常不錯。我做了些小的改動學習之用。如果你也感興趣不妨一起留言討論討論。 // WSAEventSelect_MT.cpp : Defines
C# 多執行緒併發程式設計資料彙總學習
多執行緒程式設計,非同步程式設計,都是感覺非常高大上的技術,在學習了無數前輩們的教學貼後,感覺還是無法融匯貫通,所以決定寫個彙總,整理了一下前輩們的程式碼,為了加強一遍理解。這裡一大堆複雜繁瑣和囉裡囉嗦的饒舌語法就不在重複了,直接上程式碼。 class P