网络编程-TCP程序实例(只是发送了数据,在服务器显示)

package com.yyq;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

/*
 * tcp传输
 * 1,tcp分为客户端和服务端
 * 2,客户端对应的对象是socket
 * 服务器端对性的对象是serversocket
 */
/*
 * 客户端 : 该对象socket建立是,就可以去连接指定主机
 * 因为tcp是面向连接的,所以在建立socket服务时,就要有
 * 服务端存在,并连接成功,形成通路后,再该通道进行数据的传输。
 * 
 */
/*
 * 步骤: 1,创建Socket服务,并指定要连接的主机和端口
 */
public class TcpClient {
    public static void main(String[] args) throws Exception, IOException {
        //创建客户端的socket程序,指定目的主机和端口
        System.out.println(InetAddress.getLocalHost());
        Socket s = new Socket(InetAddress.getLocalHost(),12345);
        // 如果该步成功了,通路就建立了,这时socket流就产生了,这是就可以进行数据的读写了
        OutputStream out = s.getOutputStream();
        out.write("tcp ge".getBytes());
        s.close();
    }
}



package com.yyq;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
 * 存在对应关系
 * 需求:定义端点接受数据并打印在控制台上
 * 服务端:
 *     1.建立服务器的socket服务,serversocket
 *       并监听一个端口
 *     2.获取链接过来的客户端对象,通过serversocket的accept方法
 *       没有连接就会等,所以这个方法是堵塞式的
 *       并打印在控制台
 *     3.客户端如果发来数据,那么服务端要使用对应的客户端对象,并获取到
 *       该对象的读取流来读取发过来的数据
 *     4.关闭客户端(可选)
 */
public class TcpServer {
    public static void main(String[] args) throws IOException {
        ServerSocket ss = new ServerSocket(12345);
        Socket s = ss.accept();
        System.out.println(s.getInetAddress().getHostAddress()+"....connected");
        //该源是网络流  有了流对象之后读数据
        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(); 关闭服务端
    }
}

 

posted @ 2016-01-19 19:23  HuberyQian  阅读(550)  评论(0编辑  收藏  举报