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

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

2016-01-19 19:23 597 查看
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(); 关闭服务端
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: