1. 程式人生 > >多執行緒socket程式設計示例

多執行緒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