获得本机IP
//#include <winsock2.h>
//#pragma comment(lib,"WS2_32.lib")
/*
if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
{
return -1;//失败
}
*/
//#pragma comment(lib,"WS2_32.lib")
char szHostname[100],szHostaddress[200];
if(gethostname(szHostname,info(szHostname))!=SOCKET_ERROR)
{
HOSTENT *pHostEnt=gethostbyname(szHostname);
if(pHostEnt!=NULL){
sprintf(szHostaddress,"%d.%d.%d.%d",
( pHostEnt->h_addr_list[0][0]&0x00ff ),
( pHostEnt->h_addr_list[0][1]&0x00ff ),
( pHostEnt->h_addr_list[0][2]&0x00ff ),
( pHostEnt->h_addr_list[0][3]&0x00ff ));
}
}
else
return;
CString %%1(szHostaddress);
4.端对端通信
//#include <winsock2.h>
//#pragma comment(lib,"WS2_32.lib")
WSADATA wsd;
SOCKET s;
char buf[1024];
if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
{
return -1;//失败
}
s=socket(AF_INET,SOCK_DGRAM,0);
if(s==INVALID_SOCKET)
{
WSACleanup();
return -1;//创建套接字失败
}
SOCKADDR_IN servAddr;
servAddr.sin_family=AF_INET;
servAddr.sin_addr.s_addr=inet_addr(%%1);
servAddr.sin_port=htons(INADDR_ANY);;
if(bind(s,(SOCKADDR*)&servAddr,sizeof(SOCKADDR_IN))==SOCKET_ERROR)
{
closesocket(s);
WSACleanup();
return -1;//绑定套接字失败
}
SOCKADDR_IN clientAddr;
int nClientlen=sizeof(clientAddr);
ZeroMemory(buf,sizeof(buf));
if(recvfrom(s,buf,size(buf),0,(SOCKADDR*)&clientAddr,nClientlen)==SOCKET_ERROR)
{
closesocket(s);
WSACleanup();
return -1;//接收数据失败
}
CString %%2(buf);
ZeroMemory(buf,sizeof(buf));
strcpy(buf,%%3);
servAddr.sin_family=AF_INET;
servAddr.sin_addr.s_addr=inet_addr(%%4);
servAddr.sin_port=htons((short)%%5);
int nServAddrlen=size(servAddr);
if(sendto(s,buf,sizeof(buf),0,(SOCKADDR*)&servAddr,nServAddrlen)==SOCKET_ERROR)
{
closesocket(s);
WSACleanup();
return -1;//向服务器发送数据失败
}
closesocket(s);
WSACleanup();
5.点对点通信
//#include <winsock2.h>
//#pragma comment(lib,"WS2_32.lib")
WSADATA wsd;
SOCKADDR_IN addrServ,addrServ2;
SOCKET sServer,sClient,sHost;
int retVal;
sockaddr_in addrClient;
char buf[1024];
static UINT port=%%2;
BOOL listenerRun=TRUE;
UINT Listen(LPVOID pParam)
{
addrServ.sin_family=AF_INET;
addrServ.sin_port=htons((UINT)pParam);
addrServ.sin_addr.s_addr=INADDR_ANY;
retVal=bind(sServer,(LPSOCKADDR)&addrServ,sizeof(SOCKADDR_IN));
if(SOCKET_ERROR==retVal)
{
closesocket(sServer);
WSACleanup();
return -1;//绑定套接字失败
}
retVal=listen(sServer,1);
if(SOCKET_ERROR==retVal)
{
closesocket(sServer);
WSACleanup();
return -1;//开始监听失败
}
int addrClientlen=sizeof(addrClient);
sClient=accept(sServer(sockaddr FAR*)&addrClient,&addClientlen);
if(INVALID_SOCKET==sClient)
{
closesocket(sServer);
WSACleanup();
return -1;//接收客户端请求失败
}
while(listenerRun)
{
ZeroMemory(buf,sizeof(buf));
retVal=recv(sClient,buf,sizeof(buf));
if(SOCKET_ERROR==retVal)
{
closesocket(sServer);
closesocket(sClient);
WSACleanup();
return -1;//接收客户端数据失败
}
CString %%4(buf);
}
}
if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
{
return -1;//失败
}
sServer=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(INVALID_SOCKET==sServer)
{
WSACleanup();
return -1;//创建套接字失败
}
CWinThread *pThread=AfxBeginThread(Listen,&port);
sHost=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(INVALID_SOCKET==sHost)
{
WSACleanup();
return -1;//创建套接字失败
}
servAddr2.sin_family=AF_INET;
servAddr2.sin_addr.s_addr=inet_addr(%%1);
servAddr.sin_port=htons((short)%%3);
int nServerAddrlen=sizeof(servAddr2);
retVal=connect(sHost,(LPSOCKADDR)&servAddr2,sizeof(servAddr2));
if(SOCKET_ERROR==retVal)
{
closesocket(sHost);
WSACleanup();
return -1;//连接失败
}
zeroMemory(buf,sizeof(buf));
strcpy(buf,%%5);
retVal=send(sHost,buf,sizeof(buf),0);
if(SOCKET_ERROR==retVal)
{
closesocket(sHost);
WSACleanup();
return -1;//向发送数据失败
}
listenerRun=FALSE;
DWORD dwExitCode;
::GetExitCodeThread(pThread->m_hThread,&dwExitCode);
pThread=null;
closesocket(sServer);
closesocket(sClient);
closesocket(sHost);
WSACleanup();
相关推荐
Linux系统下的Socket编程详解
它基于套接字(Socket)的概念,通过创建和操作套接字,实现不同计算机之间的数据传输。这个例子只是Socket编程的入门示例,实际应用中可能涉及更多的功能和复杂性。通过理解Socket编程的原理和使用方法,可以在Linux系统下实现各种网络应用程序,如Web服务器、聊天程序等。本文将详细解析Linux系统下Socket编程的原理、使用方法以及相关的源代码示例。在Socket编程中,通信的两端分别是客户端和服务器端。客户端负责发送请求并接收服务器的响应,而服务器端则监听客户端的请求并提供相应的服务。
网络编程之Socket代码实例
网络编程之Socket代码实例 一、基本Socket例子 Server端: # Echo server program import socket HOST = '' # Symbolic name meaning all available interfaces PORT = 50007 # Arbitrary non-pri...
socket案例
本代码仅作为案例使用,如用在实际项目需要做相应改动,在前端页面中使用了简单的websocket作为接受来自服务器的消息测试,后端使用了sokect进行消息处理
socket编程代码示例
【代码】socket编程代码示例。
socket的代码实例
服务器端(ServiceServer):package cn.itcast.bigdata.socket;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.net.Socket;public class ServiceServer { public static void main(String[]...
网络通信Socket的简单案例
1.客户端代码2.服务端代码写法一3.服务端写法二3.写法比较。
c语言socket编程代码例子
socket_client客户端代码 #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <string.h> #include <error.h> #include <netinet/in.h> int main() { //1.创建socket,socket()函数 int sockfd=0; sockfd = sock.
C语言socket编程实例
文章目录一、实验说明二、面向连接的流式套接字 C/S 例子三、非阻塞的多人聊天服务器端例子四、参考书籍和???? 一、实验说明 服务端:树莓派(可以使用putty、xshell、vnc远程操作树莓派,这里使用vnc) 客户端:Ubuntu 所用语言:C语言 树莓派和Ubuntu应处于同一个局域网下(可以用手机热点连接) 二、面向连接的流式套接字 C/S 例子 在树莓派下,新建一个 Server1.c,命令 nano Server1.c,然后写入如下内容 #include <stdio.h>
linux咋socket编程,linux中socket编程
该楼层疑似违规已被系统折叠隐藏此楼查看此楼客户端:include #include #include #include #include #include #include #include #include #define SERVPORT 1234#define MAXDATASIZE 1000 /**/ int main(int argc, char *argv[]){int sockfd...
java socket编程简单实例_一个简单的java socket编程例子
关于scoekt的一些介绍,请参加度娘上的内容,链接为:http://baike.baidu.com/view/13870.htm下面是自己写的一个socket的小例子,当前功能只是初步调试了下。服务端代码如下:import java.awt.AWTException;import java.awt.Robot;import java.io.BufferedInputStream;import j...
VC之socket套接字编程
网络编程中,通常使用socket套接字编程,那么该如何使用呢?接下来我们做一个最基本的小程序实现其功能。 服务器端 // SocketTestService.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include #pra
Linux下Socket编程之TCP Server端
Linux下Socket编程之TCP Server端 2010年07月16日 一。建模 绝大部分关于socket编程的教程总是从socket的概念开始讲起的。要知道,socket的初衷是个庞大的体系,TCP/IP只是这个庞大体系下一个很小的子集,而我们真正能用上的更是这个子集中的一小部分:运输层(Host-to-Host Transport Layer)的TCP和UDP协议,...
如何用C#下的Raw Socket编程实现网络封包监视
楼主thtx5(thtx25)2005-03-02 10:45:59 在 .NET技术 / C# 提问如何用C#下的Raw Socket编程实现网络封包监视,请给出能用的源码,先谢谢各位了!!!!问题点数:100、回复次数:23Top1 楼thtx5(thtx25)回复于 2005-03-02 10:49:11 得分 0网上有代码但不能编译
linuxC系统编程——socket编程
例子: server端: #include #include//包含套接字函数库 #include #include//包含AF——INET相关结构 #include//包含AF——INET相关操作的函数 #include int main() { int server_sockfd,client_sockfd;//用于保存服务器和客户套接字标识符 int server_len,cli
Windows下C语言的Socket编程例子(TCP和UDP)
Windows下C语言的Socket编程例子(TCP和UDP) 一。 server端: 1 #include "stdafx.h" 2 #include 3 #include 4 5 #pragma comment(lib,"ws2_32.lib") 6 7 int main(int argc, char* argv[]) 8 { 9 //初始化
浅谈java中的Socket编程
Socket 通常我们也把它叫做"套接字",它是Java网络编程基础,几乎所有网络传输都是通过Socket来完成的;下面简单谈谈,对Socket 的认识以及一些基本的使用:1.认识Socket,ServerSocket认识一个类,我们首先会去查看它的API文档。Socket :是建立网络连接时使用。ServerSocket :用于服务器端。在JDK1.4中,java.net.Socket 类有 8
socket python实例_Python Socket通讯例子详解
创新从模仿开始!python中内置的socket模块使得网络编程更加简单化,下面就通过两个小小脚本来了解客户端如何与服务器端建立socket。客户端代码:#clietn.pyif __name__ == '__main__': #判断是否调用自己本身,如果不是则__name__为脚本名称import socket #导入我们所需的socket模块sock = socket.socket(soc...
转 利用Socket进行Java网络编程
Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。在Java中,有专门的Socket类来处理用户的请求和响应。利用Socket类的方法,就可以实现两台计算机之间的通讯。这里就介绍一下在Java中如何利用Socket进行网络编程。 在Java中Socket可以理解为客户端或者服务器端的一个特殊的对象,这个对象有两个关键
415




被折叠的 条评论
为什么被折叠?



