1. 程式人生 > >根據客戶端套接字獲取客戶機的IP和埠號,其形式為IP:port

根據客戶端套接字獲取客戶機的IP和埠號,其形式為IP:port

char *sock_ntop(const struct sockaddr *sa, socklen_t salen)
{
 char portstr[7];
 static char str[128];
 switch (sa->sa_family)
 {
  case AF_INET:
    {
      struct sockaddr_in *sin = (struct sockaddr_in *)sa;
      if (inet_ntop(AF_INET, &sin->sin_addr, str, sizeof(str))==NULL)
        return NULL;
      if (ntohs(sin->sin_port)!=0)
      {
        snprintf(portstr, sizeof(portstr), ":%d", ntohs(sin->sin_port));
        strcat(str, portstr);
      }
      return str;
    }
     break;
  case AF_INET6:
    {
      struct sockaddr_in6 *sin = (struct sockaddr_in6 *)sa;
      if (inet_ntop(AF_INET6, &sin->sin6_addr, str, sizeof(str))==NULL)
        return NULL;
      if (ntohs(sin->sin6_port)!=0)
      {
        snprintf(portstr, sizeof(portstr), ":%d", ntohs(sin->sin6_port));
        strcat(str, portstr);
      }
      return str;
    }
     break;
  default:
     return NULL;
     break;
 }
}

相關推薦

根據客戶獲取客戶IP形式IPport

char *sock_ntop(const struct sockaddr *sa, socklen_t salen) { char portstr[7]; static char str[128]; switch (sa->sa_family) { ca

java開發實戰1200(II)-------308建立客戶

package ClientSocketTest; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.J

Qt中使用 windows 程式設計 客戶demo

在Qt裡面使用connect需要加上兩個::不然會與訊號連線衝突 WSADATA wsa; if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0) {     cout << "WSAStartup faile

鏈路層原始程式設計-客戶

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

java在線聊天項目0.4版本 制作服務接收連客戶功能 新增客戶窗口打開時光標指向下邊文本域功能使用WindowListener監聽WindowAdapter

內部 frame visible [] one exit eve awt dap 建一個服務端類ChatServer,用於設置端口接收連接 package com.swift; import java.io.IOException; import java.net.Se

linux sock_raw原始程式設計 (轉)Linux下Libpcap原始碼分析包過濾機制

sock_raw原始套接字程式設計可以接收到本機網絡卡上的資料幀或者資料包,對與監聽網路的流量和分析是很有作用的.一共可以有3種方式建立這種 socket 1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROT

Socket()在服務器客戶之間的基本工作原理

SocketSocket之間的連接過程主要可以概括為以下三步: 服務器建立監聽:客戶端初始化Socket動態庫後創建套接字,然後指定客戶端Socket的地址,循環綁定Socket直至成功,然後開始建立監聽,此時客戶端處於等待狀態,實時監控網絡狀態; 客戶端提出請求:客戶端的Socket向服務器端提出

Java如何使向單個客戶顯示消息?

server single args 客戶端 imp Language exce stream clas 在Java編程中,如何使用套接字向單個客戶端顯示消息? 以下示例演示了如何使用Socket類的ssock.accept()方法向單個套接字客戶端上顯示消息。 packa

python socket 編程 單進程服務器 實現多客戶訪問

host port list 不能 ioerror 存儲 utf8 所有 tin 服務器: 1 import socket 2 #單進程服務器 實現多客戶端訪問 IO復用 3 #吧所有的客戶端套接字 放在一個列表裏面,一次又一次的便利過濾 4 #這就是apache

網路程式設計、網路位元組序及用udp寫客戶服務聊天程式

認識IP地址 IP協議有兩個版本:IPV4和IPV6。 IPV4:IPV4版本的IP地址是4位元組無符號整數。那麼就存在IP地址資源匱乏的時候,這時可以採用兩種方法: DHCP:ip地址動態分配(應用層協議); NAT: 地址替換; 但是這兩種方法只是暫時的有I

基於TCP的socket的網路程式設計(客戶/服務模式)

於資料完整性要求較高的場合,就應採用TCP協議。 IP網路層提供IP定址和路由。因為在網路上資料可以經由多條線路到達目的地,網路層負責找出最佳的傳輸線路。 IP地址與資料包:   IP層就是把資料分組從一個主機跨越千山萬水搬運到另外一主機, 並且這搬運服務一點都不可靠, 丟包、

Socket()在伺服器客戶之間的基本工作原理

Socket之間的連線過程主要可以概括為以下三步: 伺服器建立監聽:客戶端初始化Socket動態庫後建立套接字,然後指定客戶端Socket的地址,迴圈繫結Socket直至成功,然後開始建立監聽,

網路程式設計二(Socket、客戶服務通訊問題)

在客戶機/伺服器工作模式中,在Server端,要準備接受多個Client端計算機的通訊。為此,除用IP地址標識Internet上的計算機之外,另還引入埠號,用埠號標識正在Server端後臺服務的執行緒。埠號與IP地址的組合稱為網路套接字(socket)。 Java語言在

使用實現簡單TCP伺服器客戶模型

利用套接字實現一個簡單的TCP伺服器客戶端模型基本步驟如下: 1.建立套接字 #include <sys/types.h> #include <sys/socket.h>  int socket(int domain, int type, int

redis學習教程四《管理、備份、客戶

node 讀文件 配置文件 cluster config 方案 then connect ram redis學習教程四《管理、備份、客戶端連接》 一:Redis服務器命令 Redis服務器命令 下表列出了與Redis服務器相關的一些基本命令。 序號命令說明

使用windows server2012時FileZilla客戶時報150 Opening data channel for directory listing of "/" 響應:425 Can't open data connection

nec 響應 但是 .cn 簡單 family 問題 用戶 中間 425 Can‘t open data connection 和 讀取目錄列表失敗 問題解決 這個問題主要是由於使用Passive Mode模式造成的,解決這個問題很簡單: 1、在ftp服務軟件中設置指定端口

【轉載】java 客戶不上redis解決方案 (jedis)

主機 rom number table 出現 gin 現在 start http 本文出自:http://blog.csdn.net/lulidaitian/article/details/51946169 出現問題描述: 1.Could not get a resou

delphi客戶IBM MQ

delphi ibm mq delphi客戶端連接ibm mq 項目需要:his-lis之前交互以表/視圖BS方式完成交互,現需要更換成用IBM MQ消息平臺的方式完成交互。修改後的交互:部署測試環境: Windows2003+Windows xp+IBM MQ 7.0.5具體實現步驟:部署

zookeeper初探三 java客戶

cti ring 客戶端連接 test tid pre toolbar client pen pom.xml<dependencies> <dependency> <groupId>org.apache.hadoo

企業IM-4 InIOCP組件介紹-客戶與認證管理

-s 技術 我們 image ive cli itl title tex 對於客戶端來說,連接到服務端及提供相應的認證數據尤其重要。InConnection用於連接遠程的服務端,可指定IP和端口。通過Active屬性來啟用或停止連接。當服務器出現異常時,會調用Client的