import java.io.*;
import java.net.*;
//步奏
//建立socket对象public class tcpclient {

public static void main(String args[]) throws Exception
{
//创建客户端的socket服务,指定母的主机和端口
Socket s=new Socket("192.168.0.110",10002);
OutputStream out=s.getOutputStream();
out.write("测试数据,从客户端发往服务端".getBytes());
InputStream in=s.getInputStream();
byte[] buff=new byte[1024];
int len=in.read(buff);
System.out.println(new String(buff,0,len));

//为了发送数据,应该获取socket流中的输入流
// OutputStream out=s.getOutputStream();
// out.write("tcp ge men lai le".getBytes());
s.close();
}}
//服务端
import java.io.*;
import java.net.*;
/*
* 需求:定义端点接受数据并打印在控制台上
*
* 服务端:
* 1.套接字,两端的端口。
* 建立服务端的socket服务,serversocket();兵谏亭一个端口
* 2.获取连接过来的客户端对象
* 通过seversocket的accept()方法,没有连接就会等。阻塞式方法
* 3.客户端吐过发过来数据,那么服务端要使用对应的客户对象
* 并获取该客户端对象的读取流队形
*
*/

class tcpserver {

public static void main(String args[]) throws Exception
{
//创建服务端的socket服务,指定母的主机和端口
ServerSocket ss=new ServerSocket(10002);
//通过accetp()方法获取连过来的 客户端对象
Socket s=ss.accept();
String ip =s.getInetAddress().getHostAddress();
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();
Thread.sleep(10000);
out.write("我是服务端,发给客户端的信息".getBytes()); s.close();//关闭客户端
ss.close();
}}
//比上篇略有升级。服务器带回应的的。
下片使用服务器的功能来给变客户端发来的额数据。大小写转换。