1. 程式人生 > >基於TCP網路程式設計(客戶機/伺服器模式的通訊)

基於TCP網路程式設計(客戶機/伺服器模式的通訊)

客戶機程式

import java.net.*;
import java.io.*;
public class SClient {
 public static void main(String args[])
 {
String s=null;
Socket c_socket;
DataInputStream in=null;
DataOutputStream out=null;
 
try{
c_socket=new Socket("localhost",4321);     //執行到這裡,立即向伺服器發起連線
in=new DataInputStream(c_socket.getInputStream());
out=new DataOutputStream(c_socket.getOutputStream());
while(true)   //通過迴圈,讀取資料輸入流讀取伺服器放在“線路”裡的資訊
{
s=in.readUTF();
if(s!=null) break;
}
out.writeUTF("我是客戶機,收到你返回的資訊!");
c_socket.close();
}
catch(IOException e){
s="無法連線";  
}
System.out.println("客戶機收到 :"+s);
 }
}
伺服器端程式
import java.io.*;
import java.net.*;
public class SServer {
 public static void main(String args[])
 {
ServerSocket s_socket=null;
Socket socket=null;
String s=null;
DataOutputStream out=null;
DataInputStream in=null;
 
try{
s_socket=new ServerSocket(4321); 
}catch(IOException e1){
System.out.println("ERROR:"+e1);
}
try{
socket=s_socket.accept();
in=new DataInputStream(socket.getInputStream());
out=new DataOutputStream(socket.getOutputStream());
out.writeUTF("你好,我是伺服器,連線成功!");
while(true)  //通過迴圈,通過資料輸入流,讀取客戶機放在“線路”裡的資訊
{
s=in.readUTF();
if(s!=null) break;
}
System.out.println("伺服器收到:"+s);
socket.close();
}catch(IOException e)
{
System.out.println("ERROR "+e);
}
 
 }
}

先執行伺服器程式,再執行客戶端程式

相關推薦

基於TCP網路程式設計(客戶/伺服器模式通訊)

客戶機程式 import java.net.*; import java.io.*; public class SClient { public static void main(String args[]) { String s=null; Socket c_soc

tcp網路程式設計客戶端和服務端及listen和tcp允許最大連線數

tcp網路程式設計 tcp網路程式設計步驟: 由於tcp傳輸特點是可靠有連線,那麼就有 1.客戶端向服務端傳送連線請求(SYN), 2.服務端接受請求並向客戶端傳送(SYN+ACK); 3.客戶端向服務端回覆ACK表明他知道服務端同意連線。 以上三個步驟就是三次

java網路程式設計基於TCP的多客戶端連線伺服器

package com.test.net; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.S

Socket網路程式設計(1) ———— 基於TCP協議的客戶-伺服器socket例項

Socket網路程式設計(1) ———— 基於TCP協議的客戶-伺服器socket例項 1、TCP網路程式設計架構 2、程式碼段 伺服器: #include <stdio.h> #include <stdlib.h&

Java網路程式設計7.TCP網路程式設計客戶端鍵盤錄入伺服器控制檯輸出

TCP網路程式設計之客戶端鍵盤錄入伺服器控制檯輸出 1、鍵盤錄入資料 BufferedReader br = new BufferedReader(new InputStreamReader(S

Boost.Asio C++ 網路程式設計之七:基於TCP的同步客戶

      從本篇開始,我們會深入學習怎樣使用Boost.Asio建立更加複雜的客戶端和服務端應用。你可以執行並測試它們,而且在理解之後,你可以把它們做為框架來構造自己的應用。在接下來的例子中:1.客戶

Boost.Asio C++ 網路程式設計之九:基於TCP的非同步客戶

       現在,是比較有趣(也比較難)的非同步實現! 當檢視流程圖時,你需要知道Boost.Asio代表由Boost.Asio執行的一個非同步呼叫。例如do_read(),Boost.Asio和on_read()代表了從do_read()到on_read()的邏輯流程,

簡易NIS——搭建一個客戶端/伺服器模式網路認證環境

背景知識 NIS(Network Information Service網路資訊系統)是美國Sun公司開發的一套開源的網上身份認證系統。NIS基於RPC,是由一個伺服器、一個客戶端庫以及幾個管理工具組成。起初,NIS被稱作黃頁(Yellow Pages),或YP,現在仍然使用這個名稱來非正式地指

基於linux環境tcp網路程式設計(線上英英詞典)文件【2】

程式碼: client.c /************************************************************************* File Name: client.c Author: Young

Linux網路程式設計客戶\伺服器設計正規化

1、前言   網路程式設計分為客戶端和服務端,伺服器通常分為迭代伺服器和併發伺服器。併發伺服器可以根據多程序或多執行緒進行細分,給每個連線建立一個獨立的程序或執行緒,或者預先分配好多個程序或執行緒等待連線的請求。今天探討三種設計正規化 (1)迭代伺服器 (2)併發伺服器,為每個客戶請求建立一個程

【Java】基於TCP協議多執行緒伺服器-客戶端互動控制檯聊天室簡例

      前兩天想到一個手機APP專案,使用到藍芽,發現BluetoothSocket和J2EE網路變成的Socket差不多,使用之餘順手寫一個多執行緒伺服器與客戶端互動實現聊天室的一個小例子,方便新人學習網路程式設計模組,期間使用到多執行緒和IO輸入輸出流的

java網路程式設計客戶端,伺服器

伺服器端test1 ServerSocket server = new ServerSocket(6060); Socket socket = server.acc

2017.8.22 用python實現簡單基於TCP/IP的客戶端與伺服器

伺服器端 import socket serversocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) serversocket.bind((

網路程式設計:server伺服器轉發訊息,多個客戶端實現群聊

依然直接上圖: 下面是程式碼實現: Client.java <span style="font-size:18px;">import java.io.IOException; impor

在java網路程式設計中實現伺服器客戶端一對一的聊天

如果有多個客戶端接入,都可以傳送訊息給伺服器,但伺服器只和最後一個客戶聊天。,如果要實現群聊的話,只要把所有的socket儲存到集合中,有客戶輸入時遍歷socket得到輸出流並把訊息廣播給各個客戶端就行了。 四個讀寫的執行緒類都是一樣的,可以進行封裝,這裡就不封裝了。 Se

TCP網路程式設計心得體會淺談

**在tcp程式設計中,我們以服務端為傳送端,客戶端為接收端舉例。通訊過程中傳送端和接收端都有一個接收緩衝區和傳送緩衝區(也就是說一邊兩個緩衝區),在程式設計過程中當我們使用send方法的時候所做的工作就是—-將程式中的資料傳送到計算機核心的傳送緩衝區,而當我們使用recv()方法時就是—將

【Python】TCP網路程式設計

【Python TCP網路使用】 注意: 必須先啟動伺服器!!!不然會報錯 import socket; def LanJian_TcpClient(): with socket.socket(socket.AF_INET, socket.SOCK_STREAM)

網路程式設計TCP網路程式設計中connect()、listen()和accept()三者之間的關係

舉個簡單的例子(以下程式碼只是示範性的,用於說明不同套接字的作用,實際的函式會需要更多的引數): /* 建立用於監聽和接受客戶端連線請求的套接字 */ server_sock = socket(); /* 繫結監聽的IP地址和埠 */ bind(server_sock); /* 開始監聽 */ li

TCP網路程式設計經典案列

伺服器端 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.ServerSocket; imp

【Linux 網路程式設計TCP網路程式設計中connect()、listen()和accept()三者之間的關係

基於 TCP 的網路程式設計開發分為伺服器端和客戶端兩部分,常見的核心步驟和流程如下: connect()函式:對於客戶端的 connect() 函式,該函式的功能為客戶端主動連線伺服器,建立連線是通過三次握手,而這個連接的過程是由核心完成,不是這個函式完成的,這個函式的作用僅僅是通知 Linux 核心