1. 程式人生 > >TCP/IP Socket通信demo

TCP/IP Socket通信demo

返回 構造器 sock 方法 cli sta tcp exception style

一個實例通過client端和server端通訊

客戶端發送:“我是客戶端,請多關照”

服務端回復:“收到來自於"+s.getInetAddress().getHostName()+"的信息”

package com.ykw.net;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;

import org.junit.Test; //TCP_IP1 //客戶端給服務端發送信息。服務端輸出此信息在控制臺上 //網絡編程實際上就是Socket的編程 public class TestTCP1 { //客戶端 @Test public void client(){ Socket socket = null ; OutputStream os = null; try { //1.創建一個Socket的對象,通過構造器指明服務端的ip地址,以及接受程序的端口號 socket = new
Socket(InetAddress.getByName("127.0.0.1"),9090); //2.getOutputStream():發送數據,方法返回OutputStream的對象 os = socket.getOutputStream(); //3.具體的輸出過程 os.write("我是客戶端,請多關照".getBytes()); } catch (IOException e) { e.printStackTrace(); }
finally{ //4.關閉相應的流和Socket對象 if(os!=null){ try { os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(socket!=null){ try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //服務器端 @Test public void server(){ ServerSocket ss=null; Socket s=null; InputStream is=null; try { //1.創建一個ServerSocket對象,通過構造器指明自身的端口號 ss = new ServerSocket(9090); //2.調用其accept()方法,返回一個Socket對象 s = ss.accept(); //3.調用Socket對象的getInputStream()獲取一個從客戶端發送過來的輸入流 is = s.getInputStream(); //4.對獲取的輸入流進行的操作 byte [] b = new byte[20]; int len; while((len = is.read(b))!=-1){ String str = new String(b,0,len); System.out.println(str); } System.out.println("收到來自於"+s.getInetAddress().getHostName()+"的信息"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //5.關閉相應的流以及Socket,ServerSocket的對象 if(is!=null){ try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(s!=null){ try { s.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(ss!=null){ try { ss.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }

TCP/IP Socket通信demo