网络编程--TCP

ServerSocket服务器端对象::


构造方法摘要
ServerSocket()
          创建非绑定服务器套接字。
ServerSocket(int port)
          创建绑定到特定端口的服务器套接字。
ServerSocket(int port, int backlog)
          利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。
ServerSocket(int port, int backlog, InetAddress bindAddr)
          使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。

常用方法:

 Socketaccept()
          侦听并接受到此套接字的连接。
accept为监听连接端

package cn.itheima.cway.tcp;

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

public class ServerDemo {

	/**
	 * 服务器端
	 * 思路: 
	 * 	1,创建服务端socket服务,通过serversocket对象
	 * 	2,服务器端必须对外提供一个端口,否则客户端没法连接
	 * 	3,获取连过来的客户端对象
	 * 	4,通过客户端对象获取socket流,读取客户端发来的数据
	 * 	5,关闭资源 (关客户端,关服务端) 
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		 //创建服务端对象
		ServerSocket server=new ServerSocket(10002);
		
		//获取连接过来的客户端对象
		Socket c=server.accept();
		
		//通过socket对象获取输入流
		InputStream in=c.getInputStream();
		
		byte[] buf=new byte[1024];
		int len=in.read(buf);
		String text=new String(buf,0,len);
		String ip=c.getLocalAddress().getHostAddress();
		System.out.println(ip+":"+text);
		
		//关闭资源
		server.close();
		c.close();
		
	}

}


客户端对象:


构造方法摘要
 Socket()
          通过系统默认类型的 SocketImpl 创建未连接套接字
 Socket(InetAddress address, int port)
          创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
 Socket(InetAddress host, int port, boolean stream)
          已过时。 Use DatagramSocket instead for UDP transport.
 Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
          创建一个套接字并将其连接到指定远程地址上的指定远程端口。
 Socket(Proxy proxy)
          创建一个未连接的套接字并指定代理类型(如果有),该代理不管其他设置如何都应被使用。
protected Socket(SocketImpl impl)
          使用用户指定的 SocketImpl 创建一个未连接 Socket。
 Socket(String host, int port)
          创建一个流套接字并将其连接到指定主机上的指定端口号。
 Socket(String host, int port, boolean stream)
          已过时。 使用 DatagramSocket 取代 UDP 传输。
 Socket(String host, int port, InetAddress localAddr, int localPort)
          创建一个套接字并将其连接到指定远程主机上的指定远程端口。


常用方法:


InetAddressgetInetAddress()
          返回套接字连接的地址。
InputStreamgetInputStream()
          返回此套接字的输入流。

package cn.itheima.cway.tcp;

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

public class ClientDemo {

	/**
	 * 客户端
	 * @param args
	 * @throws IOException 
	 * @throws UnknownHostException 
	 */
	public static void main(String[] args) throws UnknownHostException, IOException {
		Socket c=new Socket(InetAddress.getByName("192.168.0.2"), 10002);
		
		//获取socket流中的输出流
		OutputStream out=c.getOutputStream();
		
		//使用输出流将指定的数据写出去
		out.write("你好,jiava".getBytes());
		c.close();
		
		
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值