java實現socket通訊__java

來源:互聯網
上載者:User

java實現socket伺服器與用戶端的通訊,此處只用範例程式碼說明


伺服器端代碼


主程式:

package netWork;import java.io.IOException;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Service {public static int i = 1;public static void main(String[] args) throws IOException {// TODO Auto-generated method stubServerSocket serverSocket = new ServerSocket(5202);Socket socket = null;while(true){socket = serverSocket.accept();System.out.println("用戶端"+(i++)+"串連成功");Runnable runnable = new MyRunnable(socket);thread thread = new Thread(runnable);thread.start();}}


多線程:

package netWork;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;public class MyRunnable implements Runnable{private Socket socket;String [] advices={"多吃水果","少吃垃圾食品","早睡早起","多運動","多出去走走","出去玩玩啊"};public MyRunnable(Socket socket) {// TODO Auto-generated constructor stubthis.socket = socket;}@Overridepublic void run() {// TODO Auto-generated method stubString advice = getAdvice();try {InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream(),"UTF-8");BufferedReader bufferedInputStream = new BufferedReader(inputStreamReader);PrintWriter printWriter = new PrintWriter(socket.getOutputStream());//while(true){String mString = bufferedInputStream.readLine();System.out.println("這是來自用戶端資訊: "+mString);printWriter.println("這是來自伺服器的資訊: "+advice);printWriter.flush();//}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private String getAdvice() {// TODO Auto-generated method stubint random = (int)(Math.random()*advices.length);return advices[random];}}


用戶端代碼

package com.myfirstprac;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;public class Cdateinfo {public void go() throws UnknownHostException, IOException {Socket socket = new Socket("127.0.0.1", 5202);PrintWriter printWriter = new PrintWriter(socket.getOutputStream());InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream(),"UTF-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);printWriter.println("hh,我是用戶端");printWriter.flush();String msg = bufferedReader.readLine();System.out.println(msg);printWriter.close();socket.close();}public static void main(String[] args) throws UnknownHostException, IOException {// TODO Auto-generated method stubCdateinfo cdateinfo = new Cdateinfo();cdateinfo.go();}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.