socket编程实例C语言socket编程实现网络数据传输

socket编程实例  时间:2021-06-09  阅读:()

列举十个跟socket编程相关的类

先运行服务器端类,然后再运行客户端类,就可以了/***服务器端类*/lassServer{publicstaticvoidmain(String[]args)throwsIOException{Serverserver=newServer();server.start();}publicvoidstart()throwsIOException{//ServerSocket对当前服务器的服务端口的绑定//这个端口号不能重复绑定,不能同时执行两边ServerSocketss=newServerSocket(8888);while(true){//ept开始等待(IOBlock)客户连接(启动监听),如果没有客户端连接,一直挂起等待下去。

//如果有客户端连接,才会继续执行下去,返回的Socket实例s代表对于客户端连接。

Sockets=ept();//创建并启动客户服务线程,为客户服务//当前线程再次返回到ept等待,下一个客户连接newService(s).start();//创建线程}}classServiceextendsThread{Sockets;publicService(Sockets){this.s=s;}publicvoidrun(){try{//s代表客户端//s中的in代表从客户传递过来的流//s中的out代表从服务器到客户端传输流InputStreamin=s.getInputStream();Scannersc=newScanner(in);//System.in是操作系统后台OutputStreamout=s.getOutputStream();//out.write("您好!您需要点啥? ".getBytes("GBK"));//out.flush();//清理缓冲,确保发送到客户端while(true){Stringstr=sc.nextLine();//IOBlockif(str.equals("连接服务器")){out.write("连接成功! ".getBytes("GBK"));out.flush();break;}}}catch(IOExceptione){e.printStackTrace();}}}}/***客户端类*/lassClient{publicstaticvoidmain(String[]args)throwsIOException{//newSocket()连接到指定的服务器端口,当前用的是本机的端口Sockets=newSocket("localhost",8888);//返回s代表连接到了服务器//s代表对服务器的连接InputStreamin=s.getInputStream();OutputStreamout=s.getOutputStream();out.write("连接服务器 ".getBytes("gbk"));out.flush();//清理缓冲,确保发送到服务端Scannersc=newScanner(in);Stringstr=sc.nextLine();System.out.println(str);//把从服务器返回的信息,打印到控制台。

out.flush();}}

C语言socket编程

这不是很简单,加个 在send前面加个 char password[20]="12345" printf("please enter the password:"); scanf("%s",importpassword); if(0==strcmp(password,importpassword)) { 连接。





send(); } else 退出。

或者这里还可以写个循环输入也可 如果需要用户名就麻烦多了。

不多说了,求采纳,有问必答

C++ socket程序的编写

1.简单服务器 //#include <winsock2.h> //#ment(lib,"WS2_32.lib") WSADATA wsd; static UINT port=%%1; UINT Listen(LPVOID pParam) { SOCKET sServer,sClient; char buf[1024]; int retVal; if(WSAStartup(MAKEWORD(2,2),&wsd)!=0) { return -1;//失败 } sServer=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(INVALID_SOCKET==sServer) { WSACleanup(); return -1;//创建套接字失败 } SOCKADDR_IN addrServ; addrServ.sin_family=AF_INET; addrServ.sin_port=htons((short)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;//开始监听失败 } sockaddr_in addrClient; int addrClientlen=sizeof(addrClient); sClient=ept(sServer,(sockaddr FAR*)&addrClient,&addrClientlen); if(INVALID_SOCKET==sClient) { closesocket(sServer); WSACleanup(); return -1;//开始接受客户端连接失败 } ZeroMemory(buf,sizeof(buf)); retVal=recv(sClient,buf,sizeof(buf),0); if(SOCKET_ERROR==retVal) { closesocket(sServer); closesocket(sClient); WSACleanup(); return -1;//接收数据失败 } CString %%2(buf); closesocket(sServer); closesocket(sClient); WSACleanup(); return 0; } CWinThread *pThread=AfxBeginThread(Listen,&port); 2.简单客户端 //#include <winsock2.h> //#ment(lib,"WS2_32.lib") WSADATA wsd; SOCKET sHost; SOCKADDR_IN servAddr; char buf[1024]; int retVal; if(WSAStartup(MAKEWORD(2,2),&wsd)!=0) { return -1;//失败 } sHost=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(INVALID_SOCKET==sHost) { WSACleanup(); return -1;//创建套接字失败 } servAddr.sin_family=AF_INET; servAddr.sin_addr.s_addr=_addr(%%3); servAddr.sin_port=htons((short)%%2); int nServAddlen=sizeof(servAddr); retVal=connect(sHost,(LPSOCKADDR)&servAddr,sizeof(servAddr)); if(SOCKET_ERROR==retVal) { closesocket(sHost); WSACleanup(); return -1;//连接服务器失败 } ZeroMemory(buf,sizeof(buf)); strcpy(buf,%%3); retVal=send(sHost,buf,sizeof(buf),0); if(SOCKET_ERROR==retVal) { closesocket(sHost); WSACleanup(); return -1;//向服务器发送数据失败 } closesocket(sHost); WSACleanup(); 3.获得本机IP //#include <winsock2.h> //#ment(lib,"WS2_32.lib") WSADATA wsd; if(WSAStartup(MAKEWORD(2,2),&wsd)!=0) { return -1;//失败 } char szHostname[100],szHostaddress[200]; if(gethostname(szHostname,sizeof(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> //#ment(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=_addr(%%1); servAddr.sin_port=htons(INADDR_ANY); if(bind(s,(SOCKADDR*)&servAddr,sizeof(SOCKADDR_IN))==SOCKET_ERROR) { closesocket(s); WSACleanup(); return -1;//绑定套接字失败 } int nServAddrlen=sizeof(servAddr); ZeroMemory(buf,sizeof(buf)); if(recvfrom(s,buf,sizeof(buf),0,(SOCKADDR*)&servAddr,&nServAddrlen)==SOCKET_ERROR) { closesocket(s); WSACleanup(); return -1;//接收数据失败 } CString %%2(buf); ZeroMemory(buf,sizeof(buf)); strcpy(buf,%%3); SOCKADDR_IN clientAddr; clientAddr.sin_family=AF_INET; clientAddr.sin_addr.s_addr=_addr(%%4); clientAddr.sin_port=htons((short)%%5); int nClientlen=sizeof(clientAddr); if(sendto(s,buf,sizeof(buf),0,(SOCKADDR*)&clientAddr,nClientlen)==SOCKET_ERROR) { closesocket(s); WSACleanup(); return -1;//向服务器发送数据失败 } closesocket(s); WSACleanup(); 5.点对点通信 //#include <winsock2.h> //#ment(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=ept(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=_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();

Socket 通信编程

服务器 package Test; import .*; import java.io.*; public class KKMultiServer { private Socket socket=null; private ServerSocket ss; String ip="192.168.1.182"; int port =8001; Thread trd=null; public void Start() { try { ss=new ServerSocket(port,20,Address.getByName(ip)); System.out.println("服务器建立等待用户连接!"); while(true) { socket=ept(); System.out.println("用户连接成功"); trd=new Thread(new GuestServer(socket)); trd.start(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String args[]) { new KKMultiServer().Start(); } }

C语言socket编程实现网络数据传输

仅供参考 // serverTCP.cpp : 定义控制台应用程序的入口点。

// #include "stdafx.h" using namespace std; long t = 0; void transFile(SOCKET s) { printf("新子服务%d......"t); send(s,"e to TCP FILE SERVER !",strlen("e to TCP FILE SERVER !")+1,0); char Buf[BUFSIZE]; FILE *fp; //printf("客户端已打开 请输入存放文件地址: "); char FilePath[128]={"0"}; t,FilePath,10); if((fp=fopen(FilePath,"wb"))==NULL) { printf("文件未打开 "); return; } else { send(s,"开始传送",strlen("开始传送")+1,0); //得到文件大小 char Size[20]; long int FileSize=0; recv(s,Size,21,0); FileSize=atol(Size); printf("得到文件大小: %d ",FileSize); //开始传送 char Block[BUFSIZE]; long int x=0; while (1) { x += BUFSIZE; if(x < FileSize) { recv(s,Block,BUFSIZE+1,0); fwrite(Block,1,BUFSIZE,fp); } else { recv(s,Block,FileSize+BUFSIZE-x+1,0); printf("文件接收完毕 "); fwrite(Block,1,FileSize+BUFSIZE-x,fp); fclose(fp); break; } } } fclose(fp); closesocket(s); } int _tmain(int argc, _TCHAR* argv[]) { WORD myVersionRequest; WSADATA wsaData; myVersionRequest=MAKEWORD(1,1); int err; err = WSAStartup(myVersionRequest,&wsaData); if (!err) { printf("服务器启动...... "); } else { printf("服务器启动失败!"); exit(0); } SOCKET serSocket = socket(AF_INET,SOCK_STREAM,0);//创建了可识别套接字 SOCKADDR_IN addr; addr.sin_family=AF_INET; addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//ip地址 addr.sin_port=htons(PORTBASE);//绑定端口 bind(serSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR));//绑定完成 listen(serSocket,ACESIZE);//其中第二个参数代表能够接收的最多的连接数 SOCKADDR_IN clientAddr; int len = sizeof(SOCKADDR); while(1) { t++; SOCKET serConn; serConn = ept(serSocket,(SOCKADDR*)&clientAddr,&len);//如果这里不是ept而是conection的话。



就会不断的监听 if(_beginthread((void (*)(void *))transFile, ACESIZE,(void *)serConn) < 0) return 0; } return 0; } // clientTCP.cpp : 定义控制台应用程序的入口点。

// #include "stdafx.h" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { WORD myVersionRequest; WSADATA wsaData; myVersionRequest=MAKEWORD(1,1); int err; err=WSAStartup(myVersionRequest,&wsaData); if (!err) { printf("已打开套接字 "); } else { //进一步绑定套接字 printf("套接字未打开!"); return 0; } SOCKET cliSocket =socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addr; char ip_addr[16]={"127.0.0.1"}; addr.sin_addr.S_un.S_addr=_addr(ip_addr); addr.sin_family=AF_INET; addr.sin_port=htons(PORT); char ACK[64]; connect(cliSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR));//开始连接 recv(cliSocket,ACK,sizeof(ACK),0); printf("%s ",ACK); FILE *fp; int FileSize=0; char Block[BUFSIZE]={"0"}; char FilePath[128]={"0"}; int i=0; do { printf("请输入文件地址: "); gets(FilePath); i = 0; if((fp=fopen(FilePath,"rb"))==NULL) { i = 1; printf("文件打开失败 "); } }while(i); fseek(fp,0L,SEEK_END); FileSize=ftell(fp); printf("待传送文件大小: %d ",FileSize); printf("等待服务器接受...... "); recv(cliSocket,Block,sizeof(Block),0); printf("%s ",Block); if(strcmp(Block,"开始传送")==0) { char Size[20]; ltoa(FileSize,Size,10); send(cliSocket,Size,sizeof(Size),0); fseek(fp,0L,SEEK_SET); long int y=0; char trans[BUFSIZE]; while(!feof(fp)) { fread(trans,1,BUFSIZE,fp); y=y+BUFSIZE; if(y<FileSize) { send(cliSocket,trans,BUFSIZE+1,0); } else { send(cliSocket,trans,FileSize+BUFSIZE-y+1,0); closesocket(cliSocket); WSACleanup(); } } } printf("文件发送完毕 "); fclose(fp); closesocket(cliSocket); WSACleanup(); system("pause"); return 0; }

华为云(69元)828促销活动 2G1M云服务器

华为云818上云活动活动截止到8月31日。1、秒杀限时区优惠仅限一单!云服务器秒杀价低至0.59折,每日9点开抢秒杀抢购活动仅限早上9点开始,有限量库存的。2G1M云服务器低至首年69元。2、新用户折扣区优惠仅限一单!购云服务器享3折起加购主机安全及数据库。企业和个人的优惠力度和方案是不同的。比如还有.CN域名首年8元。华为云服务器CPU资源正常没有扣量。3、抽奖活动在8.4-8.31日期间注册并...

亚洲云-浙江高防BGP,至强铂金8270,提供自助防火墙管理,超大内存满足你各种需求

官方网站:点击访问亚洲云官网618活动方案:618特价活动(6.18-6.30)全站首月活动月底结束!地区:浙江高防BGPCPU:至强铂金8270主频7 默频3.61 睿频4.0核心:8核(最高支持64核)内存:8G(最高支持128G)DDR4 3200硬盘:40G系统盘+80G数据盘带宽:上行:20Mbps/下行:1000Mbps防御:100G(可加至300G)防火墙:提供自助 天机盾+金盾 管...

ReadyDedis:VPS全场5折,1G内存套餐月付2美元起,8个机房可选_服务器安装svn

ReadyDedis是一家2018年成立的国外VPS商家,由印度人开设,主要提供VPS和独立服务器租用等,可选数据中心包括美国洛杉矶、西雅图、亚特兰大、纽约、拉斯维加斯、杰克逊维尔、印度和德国等。目前,商家针对全部VPS主机提供新年5折优惠码,优惠后最低套餐1GB内存每月仅需2美元起,所有VPS均为1Gbps端口不限流量方式。下面列出几款主机配置信息。CPU:1core内存:1GB硬盘:25GB ...

socket编程实例为你推荐
cpu监控电脑硬件监控软件有哪些?天翼校园宽带天翼校园宽带 是怎么算时间的 一个月 是指从办理那天开始 往后 30天是一个月吗 还是 办理的那天所在的那个币众筹收益权众筹为什么有吸引力activitygroupActivityGroup子activity之间的切换效果怎么实现腾讯贴吧QQ贴吧如何发帖移动硬盘文件或目录损坏且无法读取急:移动硬盘无法访问,打开提示”文件或目录损坏且无法读取”什么是网络地址什么是IP地址?web推送WebSocket 是什么原理?如何实现消息实时推送挂qq网站那有挂QQ的网站啊病毒分析网站25个最恶意的病毒网站
西安服务器租用 高防dns hostmaster BWH 网站保姆 火车票抢票攻略 xfce 圣诞促销 如何安装服务器系统 香港亚马逊 服务器是干什么用的 空间租赁 畅行云 申请免费空间 lamp兄弟连 江苏徐州移动 睿云 广东服务器托管 asp空间 葫芦机 更多