TCP編程

最好在DOS界面演示,由於在Eclipse輸入法問題,只能聊一兩句
客戶端:
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
/*
 * 客戶端接收控制檯的數據,發送到服務端,
 * 當服務端接收到數據後,回客戶端一條信息。
 */
public class SendClient {
public static void main(String[] args) throws Exception {
//發送端,發送的ip和端口
     Socket socket=new Socket("127.0.0.1", 8888);
     OutputStream os=socket.getOutputStream();//發送給服務器
     InputStream is=null;//讀取收服務器發送來的數據
     byte[]b=new byte[1024];//接收緩存
     System.out.println("請輸入發送數據");
     Scanner sc=new Scanner(System.in);
     String str=null;
     while(true){
     str=sc.nextLine();
     if("000".equals(str)){//輸入000結束
     break;
     }
     byte[]a=str.getBytes();
    //若是接收是用緩衝流的話,有readLine()時,發送端必定要有回車換行符服務器才能接受到
     os.write(a, 0, a.length);
     os.write("\r\n".getBytes());
     //讀取服務器發送來的數據
     is=socket.getInputStream();//得到讀取管道。
     int len=is.read(b);
     System.out.println(new String (b,0,len));//打印出來
     }
     socket.close();
     os.close();
}
}
服務端:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.Provider.Service;
import java.util.Scanner;
/*
 * 客戶端接收控制檯的數據,發送到服務端,
 * 當服務端接收到數據後,回客戶端一條信息。
 */
public class ReceivceClient {
public static void main(String[] args) throws Exception {
      //建立接收
ServerSocket serverSocket=new ServerSocket(8888);
//返回的是一個socket
Socket socket=serverSocket.accept();//監聽,看有沒有客戶端鏈接,此方法有阻塞,接收不到不會往下執行
//得到讀取管道
InputStream is=socket.getInputStream();
//建立發送管道
OutputStream os=null;
Scanner sc=new Scanner(System.in);
byte[]a=new byte[1024];//數據緩衝區
int len=-1;
String string;
while((len=is.read(a))!=-1){
//接收打印
String str=new String(a, 0,len);
System.out.println(str);
//發送
os=socket.getOutputStream();
string=sc.nextLine();
if("000".equals(string)){
            break;
            }
          //若是接收是用緩衝流的話,有readLine()時,發送端必定要有回車換行符服務器才能接受到
os.write(string.getBytes());
os.write("\r\n".getBytes());
}
serverSocket.close();
os.close();
}
}
相關文章
相關標籤/搜索