赵雅智_java 网络编程(2)之TCP (二)

2014-11-24 09:19:31 · 作者: · 浏览: 1
[] buf=new byte[1024];
int len=in.read(buf);

System.out.println(new String(buf,0,len));

//服务端向客户端返回信息
OutputStream out=s.getOutputStream();
out.write("wo shou dao le".getBytes());

s.close();
ss.close();



}

}

package src.com.hbsi.net;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServer {

/**
* @param args
*/
public static void main(String[] args)throws Exception {
//1.建立服务器socket

ServerSocket ss=new ServerSocket(9009);
//2.调用accept()
Socket s=ss.accept();

String ip=s.getInetAddress().getHostAddress();
System.out.println(ip+"...connection");

InputStream in=s.getInputStream();
byte[] buf=new byte[1024];
int len=in.read(buf);

System.out.println(new String(buf,0,len));

//服务端向客户端返回信息
OutputStream out=s.getOutputStream();
out.write("wo shou dao le".getBytes());

s.close();
ss.close();

}

}
用CMD命令窗口打开:

\

实例2:可以从键盘录入的客户端和服务端

客户端:

[java]
package src.com.hbsi.net;

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

public class TcpClient2 {

/**
* @param args
*/
public static void main(String[] args) throws Exception{

Socket s=new Socket("192.168.49.59",9009);
//获取键盘录入
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//数据输出给服务器端
OutputStream out=s.getOutputStream();

BufferedWriter bwout=new BufferedWriter(new OutputStreamWriter(out));
//获取服务器端返回的数据
BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));

String line=null;

while((line=br.readLine())!=null){
if(line.equals("over"))
break;

bwout.write(line);
bwout.newLine();
bwout.flush();

String str=brin.readLine();
System.out.println("server:"+str);


}
br.close();
s.close();

}

}

package src.com.hbsi.net;

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

public class TcpClient2 {

/**
* @param args
*/
public static void main(String[] args) throws Exception{

Socket s=new Socket("192.168.49.59",9009);
//获取键盘录入
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//数据输出给服务器端
OutputStream out=s.getOutputStream();

BufferedWriter bwout=new BufferedWriter(new OutputStreamWriter(out));
//获取服务器端返回的数据
BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));

String line=null;

while((line=br.readLine())!=null){
if(line.equals("over"))
break;

bwout.write(line);
bwout.newLine();
bwout.flush();

String str=brin.readLine();
System.out.println("server:"+str);


}
br.close();
s.close();

}

}

服务端:

[java]
/*客户端通过键盘录入信息,发送到服务器端
服务器端收到信息后,将信息转为大写返回给客户端。*/



package src.com.hbsi.net;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputSt