您的位置:首页 > 理论基础 > 计算机网络

黑马程序员 TCP传输

2013-08-20 20:51 274 查看
----------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学习型技术博客、期待与您交流!----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: