socket程式設計

2021-04-20 07:06:16 字數 2338 閱讀 7395

早幾天寫的socket程式**,關鍵的幾個api的應用,作為熟悉socket程式設計的乙個例子

#include "imver.h"

int main()

sock_notify = socket(af_inet,sock_dgram,0);

if(invalid_socket == sock_notify)

sockaddr_in local;

local.sin_family = af_inet;

local.sin_port = htons(link_port);

local.sin_addr.s_un.s_addr = inaddr_any;

ip_mreq mulip;

mulip.imr_inte***ce.s_un.s_addr = inaddr_any;

mulip.imr_multiaddr.s_un.s_addr = inet_addr(mul_addr);

if(bind(sock_notify,(sockaddr*)&local,sizeof(local)) == socket_error)

if(setsockopt(sock_notify,ipproto_ip,ip_add_membership,(char*)&mulip,sizeof(mulip)) == socket_error)

/*  int timeout = 7 * 1000; 

if(socket_error == setsockopt(sock_notify, sol_socket, so_rcvtimeo , (char*)&timeout , sizeof(timeout)))

*/string msg = "上線通知";

clinkstruct *p = new clinkstruct();

p->ipstr = mul_addr;

p->msg = msg;

p->sock = sock_notify;

p->port = link_port;

dword threadsid,threadrid;

handle threads;

threads = ::createthread(null,0,threadsentnotify,(lpvoid)p,0,&threadsid);              //開啟執行緒

handle threadr;

threadr = ::createthread(null,0,threadrecmsg,(lpvoid)p,0,&threadrid);               //開啟執行緒

char c;

char sendmsg[10];

while(1)

if(c == 'q')

}sleep(10000);

closehandle(threads);

closehandle(threadr);

delete p;

//shutdown(sock_notify,sd_both);

if(socket_error == closesocket(sock_notify))

wsacleanup();

cout<<"ok"

return 1;

}

/*imver.h

*/#include

#include

#include

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

using

namespace std;

#define mul_addr "233.0.0.1"

#define mul_port 6000

#define link_port 5999

bool exitcheck = false;

class clinkstruct        //乙個簡單的結構體

;int sent2addr(string ipstr,int port,string msg,socket sockpar) //傳送函式

int rec(socket sockpar)        //接收

string add_str = "ip:";               //顯示

add_str += inet_ntoa(fromaddr.sin_addr);

coutcout}else}}

return 1;

}dword winapi threadrecmsg(lpvoid lp)        //接收訊息執行緒

}return 1;

}

socket程式設計

一直以為serversocket accept之後客戶端才能發資訊,實驗後得出如下結論 1 serversocket沒有accept時,client是可以傳送資訊到server端的。2 serversocket accept之後,正在處理訊息時,client也是可以傳送資訊到server端。如果se...

Socket程式設計

對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...

socket程式設計

建立socket 建立乙個 socket,它可用於在基於 tcp ip 的網路 如 internet 上通訊。socket s new socket addressfamily.internetwork,sockettype.stream,protocoltype.tcp 若要使用 udp 而不是 ...