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

[java]网络编程(Socket编程、套接字编程)

2012-08-20 01:50 381 查看
Socket类----实现客户端套接字

----套接字是两台机器间通信的端点,用于描述IP地址和端口,应用程序通常通过“套接字”向网络发送请求 或者应答网络请求

----构造方法:Socket(InetAdress address,int port)---创建一个流套接字,并将其连接到指定IP地址的端口 号

结果图:如下---先运行Service1






再运行Client1



模拟客户端

package guo;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

public class Client1 {

public static void main(String[] args)
{
try
{
Socket socket = new Socket("127.0.0.1",8000);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true);
BufferedReader in1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true)
{
/*从键盘读一行*/
String str = in.readLine();
if(str==null || "".equals(str))break;
/*写给服务器端*/
out.println(str);
String str1 = in1.readLine();
System.out.println(str1);

}
socket.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
模拟服务端

package guo;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Service1 {

public static void main(String[] args)
{
try
{
/*开辟一个端口就是开启一个服务了---端口的分配必须是唯一的,因为端口是为了唯一标识每台计算机唯一服务的
* 端口号是从0~65535之间的,前1024个端口已被Tcp/Ip作为保留端口,因此自己分配的端口只能是1024以后的*/
ServerSocket s = new ServerSocket(8000);
System.out.println("服务已经开启,等待客户来访问!");
/*等待客户来访问,如果没有客户就阻塞,一直等待*/
Socket socket = s.accept();
System.out.println("接受到客户的访问!");
/*服务器从Socket的输入流中读取数据*/
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader in1 = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true);
while(true)
{
//从socket的输入流中进行读操作
String str = in.readLine();
if("exit".equals(str))break;
/*打印到控制台*/
System.out.println(str);
/*服务器端键盘*/
String str1 = in1.readLine();
out.println(str1);
}
socket.close();
s.close();

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