zoukankan      html  css  js  c++  java
  • Socket编程 (一)

    <<Linux 网络编程>>摘要

            

     注意: 其中的大部分成员是网络字节序(大端字节序);

    编程:

    服务器先要做的事情:

    socket() 初始化Socket

    bind() 绑定本地端口

    listen() 监听端口

    accept() 响应客户端请求

    一个例子

      客户端(Windows 系统, Java 环境)

    public class xxx {
    	private static String host = "www.mylinux.net";
    	private static int port = 8848;
    
    	public static void main(String[] args) throws Throwable {
    		Socket s = new Socket();
    		if (!s.isConnected()) {
    			System.out.println("正在连接服务器...");
    			try {
    				s.connect(new InetSocketAddress(host, port), 2000);
    			} catch (IOException e) {
    				System.out.println("连接超时!");
    				return;
    			}
    			System.out.println("连接成功!");
    			System.out.println(s);
            }
    }
    

      服务器端(Linux 系统, glibc环境)

     15         // socket
     16         int sockfd = socket(AF_INET, SOCK_STREAM, 0);
     17         if (sockfd == -1) {
     18                 perror("socket()");
     19                 return ;
     20         }
     21
     22         // bind
     23         struct sockaddr_in addr = { 0 };
     24         addr.sin_family = AF_INET;
     25         addr.sin_port = htons(8848);
     26         //addr.sin_addr.s_addr = inet_addr("0.0.0.0");
     27
     28         if (bind(sockfd, (void *)&addr, sizeof(struct sockaddr)) != EXIT_SUCCESS) {
     29                 perror("bind()");
     30                 return ;
     31         }
     32
     33         // listen
     34         if (listen(sockfd, 5) != EXIT_SUCCESS) {
     35                 perror("listen()");
     36                 return ;
     37         }
     38
     39         // accept
     40         accept(sockfd, NULL, NULL);
        
    

      

      注意: bind() 过程中绑定地址不是本地回环地址 127.0.0.1, 而是 0x0, 这个IP相当于java中的this,代表当前设备的IP, 否则即使绑定成功了, 也只能在本地通过唯一IP访问。

  • 相关阅读:
    事件处理器(eventhandler,或称为事件处理程序)onload
    HTML语言中img标签的alt属性和title属性的作用于区别
    nexus 开机自启动
    idea 上传jar包到nexus
    Spark standalone HA
    spark 性能优化指南
    spark 体验点滴- executor 数量 和task 并行数
    spark 体验点滴-client 与 cluster 部署
    aop concepts
    部署jar到linux ,开机自启动
  • 原文地址:https://www.cnblogs.com/develon/p/9022081.html
Copyright © 2011-2022 走看看