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

JAVA 网络编程(TCP传输1)

2013-04-10 20:23 204 查看
简单的TCP客户端和服务端示例

/*
客户端

在对象建立时 就可以指定连接主机
因为tcp是面向连接的 所以在建立socket服务时 就要有服务端存在
并连接成功

*/

import java.io.*;
import java.net.*;

class TCPClient
{
public static void main(String []args) throws Exception
{
//1,创建客户端的socket服务 指定目的主机 和的端口
Socket s = new Socket("127.0.0.1",1000);

//2,为了发送数据 应该获取Socket流中的输出流
OutputStream out = s.getOutputStream();

out.write("TCP Client".getBytes());

s.close();
}

}

/*
服务端
通过ServerSocket 的 accept方法    该方法是阻塞式
*/

class TCPServer
{
public static void main(String []args) throws Exception
{
//1,建立服务端的socket服务 ServerSocket();
ServerSocket ss = new ServerSocket(1000);

//获取客户端对象
Socket s = ss.accept();

String ip = s.getInetAddress().getHostAddress();
System.out.println("ip"+ip);

//获取客户端发送过来的数据 使用客户端对象的读取流来读取数据
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.*;

/*
演示TCP的传输的客户端和服务端互访

需求:客户端给服务端发送数据 服务端收到后给客户端反馈信息
*/

/*
客户端:
1,建立socket服务 指定要连接的主机和端口
2,获取socket流中的输出流,将数据源写到该流中。通过网络发送给服务端
3,获取socket流中的输入流 将服务端反馈的数据获取到 并打印
4,关闭客户端
*/

class TCPClient
{
public static void main(String []args) throws Exception
{
Socket s = new Socket("192.168.1.101",1000);

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();
}
}

class TCPServer
{
public static void main(String []args) throws Exception
{
ServerSocket ss = new ServerSocket(1000);

Socket s = ss.accept();

String ip = s.getInetAddress().getHostAddress();

System.out.println(ip +" connected!");
InputStream in = s.getInputStream();

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();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: