码迷,mamicode.com
首页 > 编程语言 > 详细

Java:网络编程值TCP的使用

时间:2015-10-28 23:00:45      阅读:417      评论:0      收藏:0      [点我收藏+]

标签:

演示TCP传输
 
1.Tcp分客户端和服务端
2.客服端对应的对象是scoket
   服务端对应的对象是serverscoket
 
客户端:
通过查阅scoket对象,发现在建立对象时,就可以连接指定的主机。
因为tcp是面向连接的,所以在建立scoket服务时,就要有服务端存在,并连接成功,形成通路后,在该通道进行数据的传输。
 
需求:给服务端发送一个文本数据
步骤:
    1.创建Socket服务并指定要连接的主机和端口。可以采用构造方法Socket(String host, int port)或对象方法connect(SocketAddress endpoint) 
    2.获取Sockett中的输出流,用来发送数据。方法是OutputStream getOutputStream()
    3.关闭客户端流。
//例子如下:
import java.net.*;
import java.io.*;
class TcpClient
{  
    public static void main(String[] args)throws Exception
    {
      //创建客户端的Socket服务,指定目的主机和端口     
      Socket s = new Socket("192.168.1.105",8888);
      
      //为了发送数据,应该获取Socket中的输出流, 
      OutputStream out = s.getOutputStream();
      
      out.write("tcp is coming!".getBytes());
      
      //关闭客户端流
      s.close();
    }
}

 

需求:定义端点接收数据,并打印在控制台上。
服务端:
1.建立服务端的Socket服务,构造函数ServerScoket(int port),并监听一个端口
2.获取连接过来的客服端对象,方法Socket accept() ,这个方法是阻塞式的,没有连接就等。
3.如果客服端发送过来数据,那么服务端要使用对应的客服端对象,并采用该客服端的读取流对象来读取发过来的数据。并打印在控制台。
4.关闭服务端(可选操作) 
//例子如下:
class TcpServer
{
    public static void main(String[] args)throws Exception
    {
        //建立服务端的Socket服务,并监听一个端口
        ServerSocket ss = new ServerSocket(8888);
        
        //通过accept方法获取连接过来的客服端对象
        Socket s = ss.accept();
        String IP = s.getInetAddress().getHostAddress();
        System.out.println(IP+"...connected!");        
        
        //获取客户端发送给来的数据,服务端要使用客服端对象的读取流类读取数据。方法InputStream getInputStream()  
        InputStream in = s.getInputStream();
        
        byte[] buf = new byte[1024];

        int len = in.read(buf);
                
        System.out.println(new String(buf,0,len));
        
        s.close();//关闭客户端
        
        ss.close();//关闭服务端(可选操作)
    }
}

 

Java:网络编程值TCP的使用

标签:

原文地址:http://www.cnblogs.com/XYQ-208910/p/4918895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!