精华内容
下载资源
问答
  • android studio Socket客户端服务器通信 TCP/IP通信android studio Socket客户端服务器通信 TCP/IP通信android studio Socket客户端服务器通信 TCP/IP通信
  • 获取socket客户端IP

    2021-01-08 17:00:09
    场景:服务端建立socket后,需要知道是哪些客户端IP在发起请求,可以对请求的客户端进行限制等操作。 /*获取客户端的IP*/ #define NIPQUAD(addr) \ ((unsigned char *)&addr)[0], \ ((unsigned char *)&...

    场景:服务端建立socket后,需要知道是哪些客户端IP在发起请求,可以对请求的客户端进行限制等操作。

    /*获取客户端的IP*/
    #define NIPQUAD(addr) \
    ((unsigned char *)&addr)[0], \
    ((unsigned char *)&addr)[1], \
    ((unsigned char *)&addr)[2], \
    ((unsigned char *)&addr)[3]
    
    client_sockfd = accept(server_sockfd, (struct sockaddr*) & client_address, &client_len);
    
    char client_ip[MINLEN] = "";
    sprintf(client_ip, "%u.%u.%u.%u", NIPQUAD(client_address.sin_addr.s_addr));
    展开全文
  • 获取客户端IP地址的代码 //获取客户端IP InetAddress ia= socket.getInetAddress(); String ip=ia.getHostAddress(); System.out.println("此客户端的IP为"+ip); LoginThread 类 package tcpscoket_...

    获取客户端IP地址的代码

    //获取客户端IP
    			InetAddress ia= socket.getInetAddress();
    			String ip=ia.getHostAddress();
    			System.out.println("此客户端的IP为"+ip);
    			
    

    LoginThread 类

    package tcpscoket_obj_29;
    
    import java.io.InputStream;
    import java.io.ObjectInputStream;
    import java.io.OutputStream;
    import java.net.InetAddress;
    import java.net.Socket;
    
    //线程类:处理客户请求(接受请求    获取客户端IP      返回响应)
    public class LoginThread extends Thread{
    
    	Socket socket=null;
    	//通过构造方法完成对Socket的接收
    	public LoginThread(Socket socket){
    		this.socket=socket;
    	}
    	//处理客户端请求
    	public void run(){
    		try{
    			//3.通过对象输入流获取用户请求信息(反序列化的过程)
    			InputStream is=socket.getInputStream();
    			ObjectInputStream ois=new ObjectInputStream(is);
    			User user=(User)ois.readObject();
    			System.out.println("客户端说:"+user.getUsername()+"-"+user.getPassword());
    			
    			//获取客户端IP
    			InetAddress ia= socket.getInetAddress();
    			String ip=ia.getHostAddress();
    			System.out.println("此客户端的IP为"+ip);
    			
    			//通过输出流给客户端一个响应
    			OutputStream os=socket.getOutputStream();
    			String reply="欢迎登录!";
    			os.write(reply.getBytes());
    			//4.关闭相应的数据流和Socket
    			os.close();
    			ois.close();
    			is.close();
    			socket.close();
    		}catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    	}
    	
    }
    
    
    
    展开全文
  • Socket获取客户端IP地址及端口号 程序设计>>>.Net>>> Socket获取客户端IP地址及端口号 >>> 正文 Socket获取客户端IP地址及端口号 Socket类包含一些非常...

    程序设计 >>> .Net >>> Socket获取客户端IP地址及端口号 >>> 正文
    Socket获取客户端IP地址及端口号 Socket类包含一些非常有用的属性,这些属性允许确定关于正在连接的客户端的信息。其中关键信息之一是返回EndPoint对象的RemoteEndPoint属性。EndPoint类本身是抽象的,要想收集有用的信息,需·要把EndPoint强制类型转换为IPEndPoint对象。IPEndPoint类包含远程客户端的IP地址和端口号。具体用法如下:       TcpListener tcpl=new TcpListener(port); 
        Socket s=tcpl.AcceptSocket(); 
        label1.text=((IPEndPoint)s.RemoteEndPoint).Address.ToString(); 
        label2.text=((IPEndPoint)s.RemoteEndPoint).Port.ToString(); 
    posted on 2011-01-28 14:07 donqiang 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/donqiang/archive/2011/01/28/1946986.html

    展开全文
  • socket获取客户端ip例子

    万次阅读 2017-12-04 11:19:46
    例子源码来源于上面帖子。稍做修改,将客户端地址获取,并转换成字符串打印,找了一圈。没有找到靠谱例子~~ #include #include #include #include #include #include #include #define M

    https://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html

    作者:吴秦
    出处:http://www.cnblogs.com/skynet/
    本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接).


    例子源码来源于上面帖子。稍做修改,将客户端地址获取,并转换成字符串打印,找了一圈。没有找到靠谱例子~~

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<errno.h>
    #include<sys/types.h>
    #include<sys/socket.h>
    #include<netinet/in.h>


    #define MAXLINE 4096


    int main(int argc, char** argv)
    {
        int    listenfd, connfd;
        struct sockaddr_in     servaddr,caddr;
        char    buff[4096];
        int     n;


        if( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1 ){
        printf("create socket error: %s(errno: %d)\n",strerror(errno),errno);
        exit(0);
        }


        memset(&servaddr, 0, sizeof(servaddr));
        memset(&caddr,0,sizeof(caddr));
        servaddr.sin_family = AF_INET;
        servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
        servaddr.sin_port = htons(6666);


        
        if( bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1){
        printf("bind socket error: %s(errno: %d)\n",strerror(errno),errno);
        exit(0);
        }


        if( listen(listenfd, 10) == -1){
        printf("listen socket error: %s(errno: %d)\n",strerror(errno),errno);
        exit(0);
        }


        printf("======waiting for client's request======\n");
        while(1){
    socklen_t length = sizeof(caddr);
        if( (connfd = accept(listenfd, (struct sockaddr*)&caddr,&length)) == -1){
            printf("accept socket error: %s(errno: %d)",strerror(errno),errno);
            continue;
        }
        n = recv(connfd, buff, MAXLINE, 0);
        buff[n] = '\0';
        printf("recv msg from client: %s\n",buff);
        printf("recv msg from %s:client: %s\n", inet_ntoa(caddr.sin_addr),buff);
        close(connfd);
        }


        close(listenfd);
    }


    客户端:原文未动

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<errno.h>
    #include<sys/types.h>
    #include<sys/socket.h>
    #include<netinet/in.h>


    #define MAXLINE 4096


    int main(int argc, char** argv)
    {
        int    sockfd, n;
        char    recvline[4096], sendline[4096];
        struct sockaddr_in    servaddr;


        if( argc != 2){
        printf("usage: ./client <ipaddress>\n");
        exit(0);
        }


        if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){
        printf("create socket error: %s(errno: %d)\n", strerror(errno),errno);
        exit(0);
        }


        memset(&servaddr, 0, sizeof(servaddr));
        servaddr.sin_family = AF_INET;
        servaddr.sin_port = htons(6666);
        if( inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0){
        printf("inet_pton error for %s\n",argv[1]);
        exit(0);
        }


        if( connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0){
        printf("connect error: %s(errno: %d)\n",strerror(errno),errno);
        exit(0);
        }


        printf("send msg to server: \n");
        fgets(sendline, 4096, stdin);
        if( send(sockfd, sendline, strlen(sendline), 0) < 0)
        {
        printf("send msg error: %s(errno: %d)\n", strerror(errno), errno);
        exit(0);
        }


        close(sockfd);
        exit(0);
    }

    ======================================================================================

    各个函数介绍:

    socket,原型:

    int socket(int domain, int type, int protocol);
    选择协议域(ipv4 ipv6),socket类型(流 其他),协议(tcp udp)


    通过该操作 得到一个文件描述符

    将文件描述符和监听端口绑定

    bing(int sockfd, const struct sockaddr *addr, socklen_t addrlen)

    我们是是网络socket,所以要强转一下 ,两者区别:

    struct sockaddr是通用的套接字地址,而struct sockaddr_in则是internet环境下套接字的地址形式

    调用例子:

    bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr))


    绑定之后,便是listen,accept

    int listen(int sockfd, int backlog);
    int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

    listen定义监听的最大连接数

    accept将服务器socket与客户端的网络信息结合在一起,返回后续通讯达客户端句柄

    客户端,先调用socket,获取文件句柄,然后将服务器参数和句柄绑定int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
     然后就可以愉快通讯了。注意有个网络字节序和主机字节序
    

    网络是大端~~









    展开全文
  • 定义如下 #include<sys/socket.h> int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen);...//得到客户端ip以及端口号信息 getpeername(connectd,(struct sockaddr *)&c
  • $spawn1=socket_accept($socket); socket_getpeername($spawn1, $addr, $por); echo $addr."\r\n"; 转载于:https://www.cnblogs.com/yuanlipu/p/6431802.html
  • Android Socket客户端(Socket通信)

    千次阅读 2019-06-19 15:55:33
    1、在服务器上启动Socket端口监听 此处设置为0.0.0.0:37280,为监听到达服务器的所有ip ...安卓Socket客户端核心源码: package sci.tool; import java.io.InputStream; import java.io.OutputStr...
  • SuperSocket客户端

    千次阅读 2019-05-16 15:37:52
    第一个是,SuperSocket客户端 版本0.10.0 第二个是,SuperSocket提供的协议,过滤器 版本1.7.0.17 建立自己的过滤器 using SuperSocket.ProtoBase; using System; using System.Collections.Generic; ...
  • Nodejs socket服务端获取客户端IP

    千次阅读 2014-12-10 19:32:10
    io.sockets.on('connection', function(socket) { var socketId = socket.id var clientIp = socket.request.connection.remoteAddress console.log(clientIp) })  
  • import java.io.BufferedInputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException;... * Java socket 客户端接受数据 * * @author graceup * @version 1.0 *
  • WPF Socket客户端(重连)

    千次阅读 2017-07-26 16:06:44
    WPF Socket客户端(重连)
  • TCP:通过远程连接socket得到客户端IP和连接端口SOCKETacceptSock;acceptSock = accept(listenSock, NULL, NULL); SOCKADDR_IN sockAddr; int iLen=sizeof(sockAddr); getpeername(acceptSock ,(struct ...
  • socket】获取客户端IP

    千次阅读 2013-01-14 11:14:56
    from:http://blog.sunshow.net/2009/07/get-client-ip-from-socket/ 有两种方法,一种是在accept的时候获取,一种是通过getpeername获取 #include sys/socket.h>   int accept(int socket, ...
  • 代码如下,服务端在2345端口监听,accept到客户端连接后,返回{ok, Socket}. start() -> {ok, Listen} = gen_tcp:...问题是在成功accept后,我想获取客户端ip和端口号,是否可以通过返回的Socket提取出来?
  • 客户端在连接后使用的端口号是由操作系统动态分配的,但是有时候我们为了方便记录,或者安全设置,希望客户端得到的端口号也是固定的,那应该怎么做呢?其实非常简单,只需要在客户端Connect之前先绑定就可以。 ...
  • 主控和代理端的消息通讯使用java socket,网上关于java socket 基础编程已经存在很多,本文主要探讨 java socket 中的一些延伸性的话题:多代理端同步消息通讯、 socket的分包和粘包,socket 客户端连接管理。
  • C#使用Socket实现一个socket服务器与多个socket客户端通信 在分布式调度系统中,如果要实现调度服务器与多台计算节点服务器之间通信,采用socket来实现是一种实现方式,当然我们也可以通过数据存储任务,子节点来...
  • socket客户端连续消息发送

    千次阅读 2018-12-15 09:10:43
    sk = socket.socket() # 定义需要绑定的ip和端口 ip_port = ("127.0.0.1", 8888) # 绑定监听 sk.bind(ip_port) # 最大连接数 sk.listen(5) # 不断循环,不断接收数据 while True: # 提...
  • c# socket 客户端异步实现

    千次阅读 2017-09-12 11:05:26
    Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _clientSocket.BeginConnect(ip, new AsyncCallback(ConnectCallBack), _clientSocket); } catch (Exception e) { throw e...
  • 使用Socket和ServerSocket在局网使用二台电脑 创建服务器和客户端连接,发送数据 在台试电脑 AbdroidStudro,MainActivity类创建 ServerSocket服务器,客户端发数据显示到服务器本地 在电脑打开Telnet服务器设置 ...
  • 现在碰到了一个棘手的...但现在的问题是,公司的网络出口ip经常会变更,而tcp是根据ip+port来判断客户端连接的,因此随着ip的变化,该连接肯定失效了。游戏会发生让玩家重新登陆的情况,这样的话,玩家是无法接...
  • java socket客户端连接池

    万次阅读 2014-08-29 13:52:28
    最近因项目需要,需要使用socket长连接服务器,但是在网上查资料发现都是服务器的连接池,于是自己动手写了个客户端socket连接池,记之,仅供参考,里面的意义变量请自行替换,废话少说,上代码。 1. socet信息类 ...
  • 实现了java socket编程基于tcp/ip协议的简单服务端,客户端通信,用于发送报文,接收解析报文。
  • 相对服务端来说,客户端的这一步没有调用绑定套接字 这个函数,只是指定了IP地址和端口号 SOCKADDR_IN addr = { 0 }; addr.sin_family = AF_INET; addr.sin_addr.S_un.S_addr = inet_addr(“112.193.135.235”);...
  • socket客户端获取本端的端口

    千次阅读 2019-05-02 12:15:22
    对于客户端socket,一般创建socket后,直接链接服务器的ip和端口, 一般来说,我们知道服务器的ip/域名和端口号,但是本端我们一般默认,不进行显示的绑定固定端口,系统会默认自动分配空闲的端口。 一般我们不需要...
  • 调用socket的构造方法,传入服务端的IP地址和端口号就可建立连接; In是用来读要发送的文件, Out用来发送数据,可通过socket对象的getOutputStream方法来获取out流; 服务端: 通过ServerSocket构造方法...
  • socket 客户端服务端循环发送消息

    千次阅读 2018-04-25 16:10:00
    服务端: from socket import * #这种插入方法,可以...ip_d = ('192.168.1.4',999) lenth_b = 1024 rivers = 5 service_motion = socket(AF_INET,SOCK_STREAM) #次方法与service_motion = socket.socket(s...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 239,174
精华内容 95,669
关键字:

怎么得到socket客户端ip