1. 程式人生 > >簡單的Http伺服器監聽和客戶端傳送

簡單的Http伺服器監聽和客戶端傳送

伺服器端:

   static void Main(string[] args)
        {
            StartTcpListener();
        }

        static void StartTcpListener()
        {
           string url =  ConfigurationSettings.AppSettings.Get("ListenUrl");
            if (string.IsNullOrEmpty(url))
            {
                return;
            }

            HttpListener listener = new HttpListener();
            listener.AuthenticationSchemes = AuthenticationSchemes.Anonymous;
            listener.Prefixes.Add(url);
            listener.Start(); 
            new Thread(new ThreadStart(delegate
            {
                while (true)
                {
                    HttpListenerContext httpListenerContext = listener.GetContext();
                    httpListenerContext.Response.StatusCode = 200;
                    using (StreamReader sr = new StreamReader(httpListenerContext.Request.InputStream))
                    {
                        string str = sr.ReadToEnd();
                        Console.WriteLine(str);
                    }
                    using (StreamWriter writer = new StreamWriter(httpListenerContext.Response.OutputStream))
                    {
                        writer.Write("success");
                    }
                    Thread.Sleep(100);
                }
            })).Start();
        }

客戶端:
        static void Main(string[] args)
        {

            string url = ConfigurationSettings.AppSettings.Get("ListenUrl");
            if (string.IsNullOrEmpty(url))
            {
                return;
            }

            while(true)
            {
                string req = "{\"IDCode\":\"38409387401840\",\"TicketCode\":\"398429438792\",\"TName\":\"張三\"}";
                string resp = Request(url, req);
                Console.WriteLine(resp);
                Thread.Sleep(1000);
            }
        }



        private static string Request(string url, string content, string method = "POST") 
        {
            try
            {
                HttpWebRequest req = HttpWebRequest.Create(url) as HttpWebRequest;
                req.ContentType = "application/json; charset=utf-8";
                req.Method = method;
                req.Timeout = 50000;
                if (content != null)
                {
                    using (Stream rs = req.GetRequestStream())
                    {
                        byte[] bytes = Encoding.UTF8.GetBytes(content);
                        rs.Write(bytes, 0, bytes.Length);
                    }
                }
               
                using (Stream rs = req.GetResponse().GetResponseStream())
                {
                    using (StreamReader sr = new StreamReader(rs))
                    {
                        string strResult = sr.ReadToEnd();
                        return strResult;
                    }
                }
                return "";
            }
            catch (Exception ex)
            {
#if debug
                throw ex;
#endif
                return null;
            }
        }
測試結果:



相關推薦

簡單Http伺服器客戶傳送

伺服器端: static void Main(string[] args) { StartTcpListener(); } static void StartTcpListener()

初學Git及簡單搭建git服務器客戶

獲得 互聯網 local 沖突 user upd 分享 拉取 兩個文件 初識Git Git是什麽?   Git是目前世界上最先進的分布式版本控制系統。 SVN與Git的最主要的區別?   SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而幹活的時候,用的都是自己的

【node】node的核心模塊---http模塊,http的服務器客戶

tel lis and 是否 使用 啟動 進入 path 入隊 http服務器和客戶端 node.js標準庫提供了http模塊,其中封裝了一個高效的http服務器和一個簡易的http客戶端,http.Server是一個基於事件的HTTP服務器,他的核心由Node.js下層的

C#實現Socket通訊(同時客戶)

//建立socket物件 //第一個引數:設定網路定址的協議、第二引數設定資料傳輸的方式、第三個引數設定通訊協議 Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketT

netty入坑第一步:了解netty編寫簡單的Echo服務器客戶

vnr ech pac str 能夠 長連接 pos 通過 pre 早期java API通過原生socket產生所謂的"blocking",大致過程是這樣 這種的特點是每次只能處理一個請求,如果要實現多個請求並行,就還要分配一個新的線程來給每個客戶端的socket

JSON伺服器的使用客戶的解析

伺服器端的使用: String jsonString=""; String action_flag=request.getParameter("action_flag"); if(action_fla

伺服器負載均衡客戶負載均衡

Ngnix是負載均衡分廠棒的實現方式,之一!但是面試的時候面試官往往希望能夠通過一個螺絲釘能夠牽連出整個車

Java伺服器利用JPush 向客戶傳送訊息

1首先需要在jpush 官網註冊一個賬號,然後新增我們開發的客戶端程式進行管理,此時會生成Appkey 和Master secret  2 1、匯入 SDK 開發包到你自己的應用程式專案 解壓縮 jpush-sdk_v1.x.y.zip 整合壓縮包複製 libs/jpu

基於windows的簡單伺服器客戶

伺服器端套接字建立步驟:1.呼叫socket函式建立套接字。2.呼叫bind函式分配IP地址和埠號。3.呼叫listen函式轉為可接收請求狀態。4.呼叫該accept函式受理連線請求。 客戶端套接字建立步驟:1.呼叫socket函式建立套接字。2.呼叫connect函式向伺服器端傳送連線請求。  

ROS學習筆記18 (編寫簡單伺服器客戶 (C++))

1 編寫Service節點 這裡,我們將建立一個簡單的service節點("add_two_ints_server"),該節點將接收到兩個整型數字,並返回它們的和。 進入先前你在catkin workspace教程中所建立的beginner_tutorials包所在的目錄

ROS學習筆記19 (編寫簡單伺服器客戶 (Python))

1 編寫服務端節點 我們會建立服務端節點 ("add_two_ints_server") ,節點接收兩個整型數字,並返回和 進入beginner_tutorials包 $ roscd beginner_tutorials 確保你確保已經在之前建立好AddTwoInts

(4)編寫簡單伺服器客戶

目錄 編寫Service節點 程式碼 程式碼解釋 編寫Client節點 程式碼 程式碼解釋 編譯節點 編譯節點

Ubuntu 14.04下SVN伺服器server的搭建客戶簡單操作

參考:Ubuntu 14.04下搭建SVN伺服器(SVN Server) 一:搭建環境 檢視Ubuntu系統的版本資訊:可用cat /proc/version命令、uname -a命令與sb_release -a命令。 Ubuntu:14.04 64位

libevent簡單介紹以及使用(帶有伺服器客戶

這兩天使用了下libevent,只使用了網路IO事件(EV_READ和 EV_WRITE),查閱了下libevent的介面文件,這裡做點筆記,並附上程式碼,開發環境是win7+vs2010 這裡只介紹需要用到的libevent的介面函式,更多介面函式請檢視libevent官方文件 如果想了解

簡單的TCP 流式socket 伺服器客戶程式碼示例

電子書在這裡,見6.8.1 和6.8.2 章節,書中的程式碼有很多錯誤,包括#include、socket 描述符賦值等,正確的程式碼在這裡 Server 程式碼: #include <stdio.h> #include <stdlib.h> #in

伺服器客戶的json資料互動(http/socket兩種方式)

一、首先是Http方式 伺服器端: @WebServlet("/service") public class ServiceServlet extends HttpServlet { private static final long serialV

libevent學習之三:簡單伺服器客戶

1.伺服器#include <stdio.h> #include <time.h> #include <event2/bufferevent.h> #include <event2/buffer.h> #include <

簡單的socket通訊伺服器客戶

底部附上了效果圖 伺服器程式碼: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java

關於httpserverlet實現伺服器客戶的互動

Servlet的框架是由兩個Java包組成:javax.servlet和javax.servlet.http. 在javax.servlet包中定義了所有的Servlet類都必須實現或擴充套件的的通用介面和類.在javax.servlet.http包中定義了採用HTTP通訊協議的HttpServlet類.

初學Git及簡單搭建git伺服器客戶

在開發中,會經常碰到bug問題,那麼有了bug就需要修復,每個bug都可以通過一個臨時分支來修復,修復完成後,合併分支,然後將臨時的分支刪除掉。比如我在開發中接到一個404 bug時候,我們可以建立一個404分支來修復它,但是,當前的dev分支上的工作還沒有提交。 工作進行到一半時候,我們還無法提交,比如我這