黑马程序员 TCP传输

----------android培训java培训、java学习型技术博客、期待与您交流!----------

 

TCP传输

 

SocketSeverSocket

建立客户端和服务器端

建立连接后,通过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学习型技术博客、期待与您交流!----------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值