導航:首頁 > 編程語言 > javatcp編程實例

javatcp編程實例

發布時間:2024-05-30 12:26:55

㈠ TCP伺服器和客戶機編程

伺服器(TCP/IP)編程實例
現在大多數語言都支持客戶-伺服器模式(C/S)編程,其中VB給我們提供了很好的客戶-伺服器編程方式。下面我們用VB來實現TCP/IP網路編程。
TCP/IP協議是Internet最重要的協議。VB提供了WinSock控制項,用於在TCP/IP的基礎上進行網路通信。當兩個應用程序使用Socket進行網路通信時,其中一個必須創建Socket伺服器偵聽,而另一個必須創建Socket客戶去連接伺服器。這樣兩個程序就可以進行通信了。
①創建伺服器
首先創建一個服務埠號。並開始偵聽是否有客戶請求連接。
建立一窗體,並向其增加一個Winsock控制項(可在工程菜單中的部件項來添加此控制項)
添加兩文本框Text1,Text2,和一按鈕Command1
Private Sub Form_Load()
SockServer.LocalPort = 2000 ′伺服器埠號,最好大於1000
SockServer.Listen ′開始偵聽
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockServer.Close
End Sub
Private Sub SockServer_Close()
SockServer.Close
End Sub
Private Sub SockServer_ConnectionRequest(ByVal requestID As Long)
SockServer.Close
SockServer.Accept requestID ′表示客戶請求連接的ID號
End Sub
′當客戶向伺服器發送數據到達後,產生DataArrival事件,在事件中接收數據,GetData方法接收數據。
Private Sub SockServer_Data
Arrival(ByVal bytesTotal As Long)
Dim s As String
SockServer.GetData s
Text1.Text = s
End Sub
當需要向客戶發送數據時,只需調用SendData方法。
Private Sub Command1_Click()
SockServer .SendData Text2.Text
End Sub
②創建客戶
要創建客戶連接伺服器,首先設置伺服器主機名,如IP地址、域名或計算機名,然後設置伺服器埠,最後連接伺服器。
建立一窗體,並向其增加一個Winsock控制項(可在工程菜單中的部件項來添加此控制項),取名為:SockC1。添加兩文本框Text1,Text2,和一按鈕Command1
Private Sub Form_Load()
SockCl.RemoteHost =′127.0.0.1″
′表示伺服器主機名
SockCl.RemotePort = 2000
′表示伺服器埠名
SockCl.Connect
′連接到伺服器
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockCl.Close
End Sub
Private Sub SockCl_Close()
SockCl.Close
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim s As String
SockCl.GetData s ′接收數據到文本框中
Text1.Text = s
End Sub
Private Sub Command1_Click()
SockCl.SendData Text2.Text ′向伺服器發送數據
End Sub
③進行通信
把這兩個窗體分別編譯成兩個EXE文件,伺服器Server.exe和客戶Client.exe程序,並把它們分別安裝在伺服器端和客戶端,這樣就可以實現兩者通信了。
-

㈡ 怎麼用java的socket進行文件傳輸誰能給個簡單的例子,包括發送端和接收端。

java中的網路信息傳輸方式是基於TCP協議或者UD協議P的,socket是基於TCP協議的

例子1
(1)客戶端程序:
import java.io.*;
import java.net.*;
public class Client
{ public static void main(String args[])
{ String s=null;
Socket mysocket;
DataInputStream in=null;
DataOutputStream out=null;
try{
mysocket=new Socket("localhost",4331);
in=new DataInputStream(mysocket.getInputStream());
out=new DataOutputStream(mysocket.getOutputStream());
out.writeUTF("你好!");//通過 out向"線路"寫入信息。
while(true)
{
s=in.readUTF();//通過使用in讀取伺服器放入"線路"里的信息。堵塞狀態,
//除非讀取到信息。
out.writeUTF(":"+Math.random());
System.out.println("客戶收到:"+s);
Thread.sleep(500);
}
}
catch(IOException e)
{ System.out.println("無法連接");
}
catch(InterruptedException e){}
}
}
(2)伺服器端程序:
import java.io.*;import java.net.*;
public class Server
{ public static void main(String args[])
{ ServerSocket server=null;
Socket you=null;String s=null;
DataOutputStream out=null;DataInputStream in=null;
try{ server=new ServerSocket(4331);}
catch(IOException e1){System.out.println("ERRO:"+e1);}
try{ you=server.accept();
in=new DataInputStream(you.getInputStream());
out=new DataOutputStream(you.getOutputStream());
while(true)
{
s=in.readUTF();// 通過使用in讀取客戶放入"線路"里的信息。堵塞狀態,
//除非讀取到信息。

out.writeUTF("你好:我是伺服器");//通過 out向"線路"寫入信息.
out.writeUTF("你說的數是:"+s);
System.out.println("伺服器收到:"+s);
Thread.sleep(500);
}
}
catch(IOException e)
{ System.out.println(""+e);
}
catch(InterruptedException e){}
}
}

例子(2)
(1) 客戶端
import java.net.*;import java.io.*;
import java.awt.*;import java.awt.event.*;
import java.applet.*;
public class Computer_client extends Applet implements Runnable,ActionListener
{ Button 計算;TextField 輸入三邊長度文本框,計算結果文本框;
Socket socket=null;
DataInputStream in=null; DataOutputStream out=null;
Thread thread;
public void init()
{ setLayout(new GridLayout(2,2));
Panel p1=new Panel(),p2=new Panel();
計算=new Button(" 計算");
輸入三邊長度文本框=new TextField(12);計算結果文本框=new TextField(12);
p1.add(new Label("輸入三角形三邊的長度,用逗號或空格分隔:"));
p1.add( 輸入三邊長度文本框);
p2.add(new Label("計算結果:"));p2.add(計算結果文本框);p2.add(計算);
計算.addActionListener(this);
add(p1);add(p2);
}
public void start()
{ try
{ //和小程序所駐留的伺服器建立套接字連接:
socket = new Socket(this.getCodeBase().getHost(), 4331);
in =new DataInputStream(socket.getInputStream());
out = new DataOutputStream(socket.getOutputStream());
}
catch (IOException e){}
if(thread == null)
{ thread = new Thread(this);
thread.start();
}
}
public void run()
{ String s=null;
while(true)
{ try{ s=in.readUTF();//堵塞狀態,除非讀取到信息。

計算結果文本框.setText(s);
}
catch(IOException e)
{ 計算結果文本框.setText("與伺服器已斷開");
break;
}
}
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==計算)
{ String s=輸入三邊長度文本框.getText();
if(s!=null)
{ try { out.writeUTF(s);
}
catch(IOException e1){}
}
}
}
}

(2) 伺服器端
import java.io.*;import java.net.*;
import java.util.*;import java.sql.*;
public class Computer_server
{ public static void main(String args[])
{ ServerSocket server=null;Server_thread thread;
Socket you=null;
while(true)
{ try{ server=new ServerSocket(4331);
}
catch(IOException e1)
{ System.out.println("正在監聽"); //ServerSocket對象不能重復創建。
}
try{ you=server.accept();
System.out.println("客戶的地址:"+you.getInetAddress());
}
catch (IOException e)
{ System.out.println("正在等待客戶");
}
if(you!=null)
{ new Server_thread(you).start(); //為每個客戶啟動一個專門的線程。
}
else
{ continue;
}
}
}
}
class Server_thread extends Thread
{ Socket socket;Connection Con=null;Statement Stmt=null;
DataOutputStream out=null;DataInputStream in=null;int n=0;
String s=null;
Server_thread(Socket t)
{ socket=t;
try { in=new DataInputStream(socket.getInputStream());
out=new DataOutputStream(socket.getOutputStream());
}
catch (IOException e)
{}
}
public void run()
{ while(true)
{ double a[]=new double[3] ;int i=0;
try{ s=in.readUTF();堵塞狀態,除非讀取到信息。

StringTokenizer fenxi=new StringTokenizer(s," ,");
while(fenxi.hasMoreTokens())
{ String temp=fenxi.nextToken();
try{ a[i]=Double.valueOf(temp).doubleValue();i++;
}
catch(NumberFormatException e)
{ out.writeUTF("請輸入數字字元");
}
}
double p=(a[0]+a[1]+a[2])/2.0;
out.writeUTF(" "+Math.sqrt(p*(p-a[0])*(p-a[1])*(p-a[2])));
sleep(2);
}
catch(InterruptedException e){}
catch (IOException e)
{ System.out.println("客戶離開");
break;
}
}
}
}

這些例子都是Java2實用教程上的.

㈢ 關於java編程。設計一個基於TCP/IP協議的網路程序,實現如下功能:

寫好了,有什麼問題請追問。
客戶端:

import java.net.*;
import java.io.*;

public class TestSocketClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1", 5566);
System.out.println("請輸入計算式:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s1 = br.readLine();
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
DataInputStream dis = new DataInputStream(socket.getInputStream());
dos.writeUTF(s1);
dos.flush();

double s = dis.readDouble();
System.out.println("計算結果:" + s);
dis.close();
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("連接出錯");
System.exit(-1);
}
}
}

伺服器端:
import java.net.*;
import java.io.*;

public class TestSocketServer {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(5566);
Socket socket = ss.accept();

DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
DataInputStream dis = new DataInputStream(socket.getInputStream());
String s = null;
if ((s = dis.readUTF()) != null) {
System.out.println("接收到的算式:" + s);
double result = 0;
String[] sarr1 = s.split("[\\+\\-\\*\\/]");

double a = Double.parseDouble(sarr1[0].trim());
double b = Double.parseDouble(sarr1[1].trim());

String[] sarr2 = s.split("^(-?\\d+)(\\.\\d+)?");
char c = sarr2[1].trim().charAt(0);
switch (c) {
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '*':
result = a * b;
break;
case '/':
result = a / b;
break;
default:
break;
}
dos.writeDouble(result);
dos.flush();
}
dis.close();
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
System.exit(-1);
}

}
}

㈣ 在Java中實現TCP協議編程中怎麼傳

在Java中實現TCP協議編程

ServerSocket:編寫TCP網路服務程序,首先要用到java.net.ServerSocket類用以創建伺服器Socket

構造方法:

ServerSocket(intport):創建綁定到特定埠的伺服器套接字

ServerSocket(intport,intbacklog):利用指定的backlog(伺服器忙時保持連接請求的等待客戶數量),創建伺服器套接字並將其綁定到指定的本地埠號。

ServerSocket(intport,intbacklog,InetAddressbindAddr):使用指定的埠、偵聽backlog和要綁定到的本地IP地址創建伺服器。

Socket:客戶端要與伺服器建立連接,必須先創建一個Socket對象

常用構造方法

Socket(Stringhost,intport):創建一個流套接字並將其連接到指定主機上的指定埠號。

Socket(InetAddressaddress,intport):創建一個流套接字並將其連接到指定IP地址的指定埠號。

伺服器端程序調用ServerSocket類中的accept()方法等待客戶端的連接請求,一旦accept()接收了客戶端連接請求,該方法返回一個與該客戶端建立了專線連接的Socket對象,不用程序去創建這個Socket對象。建立了連接的兩個Socket是以IO流的方式進行數據交換的,Java提供了Socket類中的getInputStream()返回Socket的輸入流對象,getOutputStream()返回Socket的輸出流對象。

TCP伺服器與TCP客戶端間的數據的接受圖示:

用TCP實現伺服器與客戶端的「聊天」:

實例代碼:

客戶端:

packagecom.hbsi.net;

importjava.net.Socket;

importjava.io.*;

publicclassTcpClient{

publicstaticvoidmain(String[]args)throwsException{

//1.建立tcp客戶端socket,要確定要連接的伺服器ip,port

Sockets=newSocket("192.168.49.87",9009);

//獲取鍵盤錄入

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

//2.通過建立的socket,獲取輸出流對象

//數據輸出給伺服器端

OutputStreamout=s.getOutputStream();

BufferedWriterbwout=newBufferedWriter(newOutputStreamWriter(out));

//獲取伺服器端返回的數據

//讀取伺服器端發過來的信息InputStreamReader()

BufferedReaderbrin=newBufferedReader(newInputStreamReader(

s.getInputStream()));

Stringline=null;

while((line=br.readLine())!=null){

if(line.equals("over"))

break;

bwout.write(line);

bwout.newLine();

bwout.flush();

Stringstr=brin.readLine();

System.out.println("server:"+str);

}

br.close();

s.close();

}

}

伺服器端:

packagecom.hbsi.net;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.InputStream;

importjava.io.InputStreamReader;

importjava.io.OutputStreamWriter;

importjava.net.ServerSocket;

importjava.net.Socket;

publicclassTcpServer{

publicstaticvoidmain(String[]args)throwsException{

//1.建立伺服器socket

ServerSocketss=newServerSocket(9009);

//2.調用accept()

Sockets=ss.accept();

System.out.println(s.getInetAddress().getHostAddress()

+"...connection");

//讀取客戶的信息的輸入流

InputStreamin=s.getInputStream();

BufferedReaderbrin=newBufferedReader(newInputStreamReader(in));

//向客戶端發送信息輸出流,服務端向客戶端返回信息OutputStreamWriter()

BufferedWriterbrout=newBufferedWriter(newOutputStreamWriter(

s.getOutputStream())); Stringline=null;

while((line=brin.readLine())!=null){

System.out.println("client:"+line);

brout.write(line.toUpperCase());//伺服器端收到信息後,將信息轉為大寫返回給客戶端toUpperCase()

brout.newLine();

brout.flush();

}

s.close();

ss.close();

}

}

㈤ 編寫一個簡單的TCP通信程序。伺服器發送「你好我是伺服器」,客戶端接收該信息並顯示在屏幕上。用Java寫

1、伺服器端

importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.ServerSocket;
importjava.net.Socket;

publicclassSocketServer{

privatestaticfinalintPORT=8088;

publicstaticvoidmain(String[]args){
ServerSocketserver=null;
try{
server=newServerSocket(PORT);
while(true){
Socketclient=server.accept();
newThread(newServer(client)).start();
}
}catch(IOExceptione){
e.printStackTrace();
}
}

}

classServerimplementsRunnable{

privateSocketclient;

publicServer(Socketclient){
this.client=client;
}

publicvoidrun(){
DataOutputStreamoutput=null;
try{
output=newDataOutputStream(client.getOutputStream());
output.writeUTF("你好我是伺服器");
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(output!=null)output.close();
output=null;
}catch(IOExceptione){}
}
}

}

2、客戶端

importjava.io.DataInputStream;
importjava.io.IOException;
importjava.net.Socket;
importjava.net.UnknownHostException;

{

privatestaticfinalintPORT=8088;

publicstaticvoidmain(String[]args){
Socketsocket=null;
try{
socket=newSocket("127.0.0.1",PORT);
DataInputStreamin=newDataInputStream(socket.getInputStream());
Stringres=in.readUTF();
System.out.println(res);
if(in!=null)in.close();
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(socket!=null){
try{
socket.close();
}catch(IOExceptione){}
}
}
}
}

㈥ 鐤鐙侸ava璁蹭箟錛氫嬌鐢⊿ervletSocket鍒涘緩TCP鏈嶅姟鍣ㄧ

銆銆 浣跨敤ServletSocket鍒涘緩TCP鏈嶅姟鍣ㄧ

銆銆浠庡浘 涓鐪嬩笂鍘籘CP閫氫俊鐨勪袱涓閫氫俊瀹炰綋涔嬮棿騫舵病鏈夋湇鍔″櫒絝 瀹㈡埛絝涔嬪垎 浣嗛偅鏄涓や釜閫氫俊瀹炰綋宸茬粡寤虹珛鉶氭嫙閾捐礬涔嬪悗鐨勭ず鎰忓浘 鍦ㄤ袱涓閫氫俊瀹炰綋娌℃湁寤虹珛鉶氭嫙閾捐礬涔嬪墠 蹇呴』鏈変竴涓閫氫俊瀹炰綋鍏堝仛鍑 涓誨姩濮挎 涓誨姩鎺ユ敹鏉ヨ嚜鍏朵粬閫氫俊瀹炰綋鐨勮繛鎺ヨ鋒眰

銆銆Java涓鑳芥帴鍙楀叾浠栭氫俊瀹炰綋榪炴帴璇鋒眰鐨勭被鏄瘲erverSocket ServerSocket瀵硅薄鐢ㄤ簬鐩戝惉鏉ヨ嚜瀹㈡埛絝鐨凷ocket榪炴帴 濡傛灉娌℃湁榪炴帴 瀹冨皢涓鐩村勪簬絳夊緟鐘舵 ServerSocket鍖呭惈涓涓鐩戝惉鏉ヨ嚜瀹㈡埛絝榪炴帴璇鋒眰鐨勬柟娉

銆銆Socket accept錛堬級 濡傛灉鎺ユ敹鍒頒竴涓瀹㈡埛絝瘲ocket鐨勮繛鎺ヨ鋒眰 璇ユ柟娉曞皢榪斿洖涓涓涓庡㈡埛絝瘲ocket瀵瑰簲鐨凷ocket錛堝傚浘 鎵紺烘瘡涓猅CP榪炴帴鏈変袱涓猄ocket錛 鍚﹀垯璇ユ柟娉曞皢涓鐩村勪簬絳夊緟鐘舵 綰跨▼涔熻闃誨

銆銆涓轟簡鍒涘緩ServerSocket瀵硅薄 ServerSocket綾繪彁渚涗簡濡備笅鍑犱釜鏋勯犲櫒

銆銆ServerSocket錛坕nt port錛 鐢ㄦ寚瀹氱殑絝鍙port鏉ュ壋寤轟竴涓猄erverSocket 璇ョ鍙e簲璇ユ槸鏈変竴涓鏈夋晥鐨勭鍙f暣鏁板 ~

銆銆ServerSocket錛坕nt port int backlog錛 澧炲姞涓涓鐢ㄦ潵鏀瑰彉榪炴帴闃熷垪闀垮害鐨勫弬鏁癰acklog

銆銆ServerSocket錛坕nt port int backlog InetAddress localAddr錛 鍦ㄦ満鍣ㄥ瓨鍦ㄥ氫釜 IP鍦板潃鐨勬儏鍐典笅 鍏佽擱氳繃localAddr榪欎釜鍙傛暟鏉ユ寚瀹氬皢ServerSocket緇戝畾鍒版寚瀹氱殑IP鍦板潃

銆銆褰揝erverSocket浣跨敤瀹屾瘯 搴斾嬌鐢⊿erverSocket鐨刢lose錛堬級鏂規硶鏉ュ叧闂璇ServerSocket 閫氬父鎯呭喌涓 鏈嶅姟鍣ㄤ笉搴旇ュ彧鎺ュ彈涓涓瀹㈡埛絝璇鋒眰 鑰屽簲璇ヤ笉鏂鍦版帴鍙楁潵鑷瀹㈡埛絝鐨勬墍鏈夎鋒眰 鎵浠Java紼嬪簭閫氬父浼氶氳繃寰鐜 涓嶆柇鍦拌皟鐢⊿erverSocket鐨刟ccept錛堬級鏂規硶 濡備笅浠g爜鐗囨墊墍紺

銆銆//鍒涘緩涓涓猄erverSocket 鐢ㄤ簬鐩戝惉瀹㈡埛絝瘲ocket鐨勮繛鎺ヨ鋒眰

銆銆ServerSocket ss = new ServerSocket錛 錛

銆銆//閲囩敤寰鐜涓嶆柇鎺ュ彈鏉ヨ嚜瀹㈡埛絝鐨勮鋒眰

銆銆while 錛坱rue錛

銆銆{

銆銆//姣忓綋鎺ュ彈鍒板㈡埛絝瘲ocket鐨勮鋒眰 鏈嶅姟鍣ㄧ涔熷瑰簲浜х敓涓涓猄ocket

銆銆Socket s = ss accept錛堬級

銆銆//涓嬮潰灝卞彲浠ヤ嬌鐢⊿ocket榪涜岄氫俊浜

銆銆鈥

銆銆}

銆銆涓婇潰紼嬪簭涓鍒涘緩ServerSocket娌℃湁鎸囧畾IP鍦板潃 鍒欒ServerSocket灝嗕細緇戝畾鍒版湰鏈洪粯璁ょ殑IP鍦板潃 紼嬪簭涓浣跨敤 浣滀負璇ServerSocket鐨勭鍙e彿 閫氬父鎺ㄨ崘浣跨敤 浠ヤ笂鐨勭鍙 涓昏佹槸涓轟簡閬垮厤涓庡叾浠栧簲鐢ㄧ▼搴忕殑閫氱敤絝鍙e啿紿

榪斿洖鐩褰 鐤鐙侸ava璁蹭箟

緙栬緫鎺ㄨ崘

Java紼嬪簭鎬ц兘浼樺寲 璁╀綘鐨凧ava紼嬪簭鏇村揩 鏇寸ǔ瀹

鏂版墜瀛Java 緙栫▼

lishixin/Article/program/Java/hx/201311/27266

㈦ JAVA Socket 底層是怎樣基於TCP/IP 實現的

首先必須明確:TCP/IP模型中有四層結構:
應用層(Application Layer)、傳輸層(Transport Layer)、網路層(Internet Layer )、鏈路層(LinkLayer)
其中Ip協議(Internet Protocol)是位於網路層的,TCP協議時位於傳輸層的。通過Ip協議可以使可以使兩台計算機使用同一種語言,從而允許Internet上連接不同類型的計算機和不同操作系統的網路。Ip協議只保證計算機能夠接收和發送分組數據。 當計算機要和遠程的計算機建立連接時,TCP協議會讓他們建立連接:用於發送和接收數據的虛擬電路。

在JAVA中,我們用 ServerSocket、Socket類創建一個套接字連接,從套接字得到的結果是一個InputStream以及OutputStream對象,以便將連接作為一個IO流對象對待。通過IO流可以從流中讀取數據或者寫數據到流中,讀寫IO流會有異常IOException產生。

套接字或插座(socket)是一種軟體形 式的抽象,用於表達兩台機器間一個連接的「終端」。針對一個特定的連接,每台機器上都有一個「套接字」,可以想像它們之間有一條虛擬的「線纜」。JAVA 有兩個基於數據流的套接字類:ServerSocket,伺服器用它「偵聽」進入的連接;Socket,客戶端用它初始一次連接。偵聽套接字只能接收新的 連接請求,不能接收實際的數據包,即ServerSocket不能接收實際的數據包。
套接字是基於TCP/IP實現的,它是用來提供一個訪問TCP的服務介面,或者說套接字socket是TCP的應用編程介面API,通過它應用層就可以訪問TCP提供的服務。
在JAVA中,我們用 ServerSocket、Socket類創建一個套接字連接,從套接字得到的結果是一個InputStream以及OutputStream對象,以便 將連接作為一個IO流對象對待。通過IO流可以從流中讀取數據或者寫數據到流中,讀寫IO流會有異常IOException產生。

㈧ 我要一份用java網路編程寫的點對點的兩人聊天程序(TCP和UDP)

Server端:
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class TalkServer{
public static void main(String args[]) {
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
}catch(Exception e) {
System.out.println("can not listen to:"+e);
}
Socket socket=null;
try{
socket=server.accept();
}catch(Exception e) {
System.out.println("Error."+e);
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Client:"+is.readLine());
line=sin.readLine();
while(!line.equals("bye")){
os.println(line);
os.flush();
System.out.println("Server:"+line);
System.out.println("Client:"+is.readLine());
line=sin.readLine();
}
os.close();
is.close();
socket.close();
server.close();
}catch(Exception e){
System.out.println("Error:"+e);
}
}
}

Client端:
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {
try{
Socket socket=new Socket("127.0.0.1",4700);
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readline;
readline=sin.readLine(); //從系統標准輸入讀入一字元串
while(!readline.equals("bye")){
os.println(readline);
os.flush();
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readLine());
readline=sin.readLine(); //從系統標准輸入讀入一字元串
}
os.close(); //關閉Socket輸出流
is.close(); //關閉Socket輸入流
socket.close(); //關閉Socket
}catch(Exception e) {
System.out.println("Error"+e); //出錯,則列印出錯信息
}
}
}

閱讀全文

與javatcp編程實例相關的資料

熱點內容
esxi啟動虛擬機命令 瀏覽:969
軍工級單片機 瀏覽:113
伺服器安全保護是什麼意思 瀏覽:789
刪除運行命令 瀏覽:720
龍之召喚伺服器如何 瀏覽:119
linux目錄跳轉 瀏覽:368
程序員和老闆稱兄道弟 瀏覽:759
直播網路連接源碼 瀏覽:736
用安卓手機怎麼登錄蘋果手機id 瀏覽:710
論文查重工具源碼 瀏覽:401
android銀聯demo 瀏覽:86
智能演算法發展 瀏覽:351
房車露營地用什麼app 瀏覽:70
spark編程指南python 瀏覽:553
phparray源碼 瀏覽:1002
安卓手機反應有點慢怎麼辦 瀏覽:705
c語言怎麼訪問伺服器並獲取數據 瀏覽:114
怎麼下載三維app 瀏覽:77
把pdf中的圖片導出到excel 瀏覽:505
php操作redis實例 瀏覽:143