详解Socket连接的服务端和客户端


//服务端代码,Tomcat使用的也是socket
package com.socket.sym;

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

public class SocketServer {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//指定某个应用的端口
ServerSocket ss=new ServerSocket(8988);

while(true){
Socket socket=ss.accept();
InputStream iStream=socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(iStream));
String str=br.readLine();
System.out.println("客户端说:"+str);
br.close();
iStream.close();
socket.close();
}
}
}
//客户端代码:
package com.socketclient.sym;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;


public class SocketClient {

/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
/*
* 服务器的地址136.10.7.151;然后8988为服务器上某应用的指定端口
*/
Socket socket=new Socket("130.10.7.151",8988);
OutputStream oStream=socket.getOutputStream();
BufferedWriter bwBufferedWriter=new BufferedWriter(new OutputStreamWriter(oStream));
bwBufferedWriter.write("你好,连上了吗");
bwBufferedWriter.close();
oStream.close();
socket.close();

}

}
/*
* Socket:通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。
* 每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
* ICMP(Internet Control Message Protocol):它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
* 控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
* IGMP:Internet (Internet Group Management Protocol )组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于 IP主机向任一个直接相邻的路由器报告他们的组成员情况。
* 它规定了处于不同网段的主机如何进行多播通信,其前提条件是路由器本身要支持多播。
* ARP:地址解析协议,(Address Resolution Protocol)是根据IP地址获取物理地址的一个TCP/IP协议。
* 其功能是:主机将ARP请求广播到网络上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。
* 而如果返回消息是伪造的,由于ARP缓存的存在,就产生了ARP欺骗。ARP命令可用于查询本机ARP缓存、添加或删除静态对应关系等。
* 相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值