----------android培训、java培训、java学习型技术博客、期待与您交流!----------
TCP传输
Socket和SeverSocket
建立客户端和服务器端
建立连接后,通过Socket中的IO流进行数据的传输
关闭socket
同样客户端与服务器端是两个独立的应用程序。
类 Socket
java.lang.Object---->java.net.Socket
直接已知子类:SSLSocket
Publicclass Socket extenfs Object
此类实现客户端套接字(也可以就叫“套接字”),套接字是两台机器间通信的端点。
套接字的实际工作由SocketImpl类的实例执行。应用程序通过更改创建套接字实现的套接字工厂可以配置它自身,以创建适合本地防火墙的套接字。
从以下版本开始:
Jdk1.0
另请参见:
setSocketImplFactory(java.net.SocketImplFactory),SocketImpl,SocketChannel
import java.io.*;
import java.net.*;
/*
*需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息。
*
* 客户端:
* 1、建立socket服务,指定要连接主机和端口。
* 2、获取socket流中的输出流,将数据写到该流中,通过网络发送给服务端。
* 3、获取socket流中的输入流,将服务端反馈 的数据获取到,并打印。
* 4、关闭客户端资源。
*
*
*
*/
public class TcpClient {
public static void main(String[]args)throws Exception{
//创建socket
Socket s=new Socket("192.168.0.106",10004);
//创建输出流
OutputStream out=s.getOutputStream();
out.write("服务器,你好!".getBytes());
InputStream in=s.getInputStream();
byte[] buf =new byte[1024];
int len=in.read(buf);
System.out.println(new String(buf,0,len));
//关闭资源
s.close();
}
}
import java.io.*;
import java.net.*;
/*
*需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息。
*
* 客户端:
* 1、建立socket服务,指定要连接主机和端口。
* 2、获取socket流中的输出流,将数据写到该流中,通过网络发送给服务端。
* 3、获取socket流中的输入流,将服务端反馈 的数据获取到,并打印。
* 4、关闭客户端资源。
*
*
*
*/
public class TcpServer {
public static void main(String[]args) throws Exception{
ServerSocket ss=new ServerSocket(10004);
Socket s=ss.accept();
//定义ip
String ip=s.getInetAddress().getHostAddress();
System.out.println(ip+"....connected");
InputStream in =s.getInputStream();
//创建buf数据包
byte[] buf =new byte[1024];
int len =in.read(buf);
System.out.println(new String(buf,0,len));
OutputStream out=s.getOutputStream();
out.write("哥们收到,你也好!".getBytes());
//关闭资源
s.close();
ss.close();
}
}
总结:Socket类实现客户端套接字(也可以就叫“套接字”),套接字是两台机器间通信的端点。
----------android培训、java培训、java学习型技术博客、期待与您交流!----------