/*
TCP传输:
1.socket,serversocket;
2.建立客户端和服务器端;
3.建立连接后,通过Socket中的IO流进行数据的传输;
4.关闭socket;
同样:客户端和服务端是两个独立的应用程序
*/
/*
TCP传输:
1.分为客户端和服务端;
2.客户端对应的对象为Socket,
服务端的对应对象是ServerSocket;
*/
/*
客户端:
通过查阅socket对象,发现该对象在建立时,就可以指定主机;
因为tcp是面向连接的,所以在建立socket服务时,就要有连接端存在,并且连接成功;
形成通路后,在该通道进行数据的传输;
步骤:
1.创建socket服务,并且指定要连接的主机和端口;
2.获取输出流对象;
3.通过输出流write方法,写入数据;
4.关闭客户端
*/
import java.net.*;
import java.io.*;
class TcpClient
{
public static void main(String[] args) throws Exception
{
//建立客户端的socket服务,指定目的主机和端口
Socket s=new Socket("192.168.11.227",10003);
//为了发送数据,应该获取socket流中的输出流
OutputStream out=s.getOutputStream();
out.write("tcp wo lai le".getBytes());
s.close();
}
}
/*
需求:定义端点接收数据并且打印到控制台
服务端:
1.建立服务端的serversocket对象,并且监听一个端口;
2.获取连接过来的客户端对象,
通过serversocket的accept方法,没有连接就会等,所以这个方法是阻塞式的
3.客户端如果发过来数据,那么服务端要使用相应的客户端对象,
并且获取到该客户端对象的读取流来获取发过来的数据
4.关闭服务端(可选)
*/
TCP传输:
1.socket,serversocket;
2.建立客户端和服务器端;
3.建立连接后,通过Socket中的IO流进行数据的传输;
4.关闭socket;
同样:客户端和服务端是两个独立的应用程序
*/
/*
TCP传输:
1.分为客户端和服务端;
2.客户端对应的对象为Socket,
服务端的对应对象是ServerSocket;
*/
/*
客户端:
通过查阅socket对象,发现该对象在建立时,就可以指定主机;
因为tcp是面向连接的,所以在建立socket服务时,就要有连接端存在,并且连接成功;
形成通路后,在该通道进行数据的传输;
步骤:
1.创建socket服务,并且指定要连接的主机和端口;
2.获取输出流对象;
3.通过输出流write方法,写入数据;
4.关闭客户端
*/
import java.net.*;
import java.io.*;
class TcpClient
{
public static void main(String[] args) throws Exception
{
//建立客户端的socket服务,指定目的主机和端口
Socket s=new Socket("192.168.11.227",10003);
//为了发送数据,应该获取socket流中的输出流
OutputStream out=s.getOutputStream();
out.write("tcp wo lai le".getBytes());
s.close();
}
}
/*
需求:定义端点接收数据并且打印到控制台
服务端:
1.建立服务端的serversocket对象,并且监听一个端口;
2.获取连接过来的客户端对象,
通过serversocket的accept方法,没有连接就会等,所以这个方法是阻塞式的
3.客户端如果发过来数据,那么服务端要使用相应的客户端对象,
并且获取到该客户端对象的读取流来获取发过来的数据
4.关闭服务端(可选)
*/
class TcpServer
{
public static void main(String[] args) throws Exception{
//建立服务端serversocket服务,并且监听一个端口
ServerSocket ss=new ServerSocket(10003);
//通过accept方法获取连接过来的客户端对象
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("message:...."+new String(buf,0,len));
//关闭客户端
}
}
import java.net.*;
import java.io.*;
class UdpSend2
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds=new DatagramSocket();
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=bufr.readLine())!=null){
if(("over").equals(line))
break;
byte[] buf=line.getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.11.227"),10002);
ds.send(dp);
}
ds.close();
}
}
class UdpRece2
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds=new DatagramSocket(10002);
while(true){
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
ds.receive(dp);
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
System.out.println(ip+"::"+data);
}
}
}