Java系列講座一:TCP方式Socket通訊案例講解

開發網絡通訊軟件,如QQ,阿里旺旺等即時通信軟件時,Socket通訊是必備的基礎知識,今天跟你們談談Socket通訊中TCP方式通訊的軟件開發步驟及主要代碼講解:html

第一步:開發服務器端程序Server.java,源代碼以下:java

package T16;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
//服務器端程序
public static void main(String[] args) {
/**
 * 1.建立服務器端ServerSocket,指定端口,有多塊網卡時能夠指定IP
 * 參數1:端口
 * 參數2:等待排隊的客戶端數量
 */
try {
//1.建立服務器端ServerSocket
ServerSocket serverSocket = new ServerSocket(8888,5);
System.out.println("服務器啓動成功:"+serverSocket.toString());
//2.等待客戶鏈接
Socket clientSocket = serverSocket.accept();
System.out.println("有客戶來,請接客...........");
//3.綁定輸入流
InputStream is = clientSocket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
//4.綁定輸出流
OutputStream os = clientSocket.getOutputStream();
PrintStream ps = new PrintStream(os);
//5.接收數據
System.out.println("服務器端接收:"+br.readLine());
//6.發送數據
String str = "歡迎鏈接到本服務器.";
ps.println(str);
//7.關閉socket通訊
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}


第二步:開發客戶端程序Client.java,源代碼以下:web

package T16;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Calendar;

public class Client {

/**
 * 客戶端程序:
 * 1.指定服務器的IP地址;
 * 2.指定服務器的端口;
 * 
 * */
public static void main(String[] args) {
try {
//1.建立客戶端Socket;
Socket socket = new Socket("127.0.0.1",8888);
System.out.println("鏈接服務器成功....");
//2.綁定輸入輸出流
OutputStream os = socket.getOutputStream();
PrintStream ps = new PrintStream(os);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
//3.發送數據
ps.println("我是客戶端,請求鏈接...");
//4.接收數據
System.out.println("客戶端接收服務器數據:"+br.readLine());
//5.關閉Socket
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}


第三步:先運行服務器端程序,再運行客戶端程序,能夠看到網絡傳輸後的打印結果數據庫


說明:該程序是一個比較簡單的入門級代碼,整個程序只能進行一次網絡通訊,若是須要作成一個能夠不斷的通訊軟件的軟件,還要用到多線程,IO流操做,數據庫操做等諸多技術綜合應用。服務器

本人從事軟件項目開發20年,2005年開始從事Java工程師系列課程的教學工做,錄製50多門精品視頻課程,包含java基礎,jspweb開發,SSH,SSM,SpringBoot,SpringCloud,人工智能,在線支付等衆多商業項目,每門課程都包含有項目實戰,上課PPT,及完整的源代碼下載,有興趣的朋友能夠看看個人在線課堂,網絡

講師課堂連接:https://edu.51cto.com/lecturer/8307455.html多線程


若是你們有興趣能夠看看個人 java從入門到精通+QQ即時通信軟件項目實訓的教學視頻,連接地址:http://edu.51cto.com/course/6946.html socket

相關文章
相關標籤/搜索