54 lines
1.6 KiB
C
54 lines
1.6 KiB
C
|
#include<stdio.h>
|
|||
|
#include <sys/socket.h>
|
|||
|
#include <sys/types.h>/* See NOTES */
|
|||
|
#include <netinet/in.h>
|
|||
|
#include <arpa/inet.h>
|
|||
|
#include <string.h>
|
|||
|
#include <unistd.h>
|
|||
|
|
|||
|
#define OWNADDR "192.168.0.17" //我自己电脑的ip地址
|
|||
|
#define OWNPORT 10000 //我自己电脑的该程序的端口号
|
|||
|
|
|||
|
#define SERVERADDR "192.168.0.114" //对方的服务器的IP地址
|
|||
|
#define SERVERPORT 20000 //对方的服务器的端口号
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
//1、买手机(建立套接字)
|
|||
|
int socketfd = socket(AF_INET, SOCK_STREAM, 0);
|
|||
|
if(socketfd == -1)
|
|||
|
{
|
|||
|
printf("没钱了....,失败\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
//2、绑定自己的电话号码(绑定自己的IP地址 和端口号)
|
|||
|
//定义一个IPV4结构体变量,初始化自己的IP地址和端口号
|
|||
|
struct sockaddr_in ownAddr;
|
|||
|
ownAddr.sin_family = AF_INET;/*地址族 IPV4*/
|
|||
|
ownAddr.sin_port = htons(OWNPORT);//htons 将本地端口号转为网络端口号
|
|||
|
ownAddr.sin_addr.s_addr = inet_addr(OWNADDR);//将本地IP地址转为网络IP地址
|
|||
|
|
|||
|
bind(socketfd, (struct sockaddr *)&ownAddr,sizeof(struct sockaddr_in));
|
|||
|
|
|||
|
//3、开始打电话(发起连接)
|
|||
|
struct sockaddr_in serverAddr;
|
|||
|
serverAddr.sin_family = AF_INET;/*地址族 IPV4*/
|
|||
|
serverAddr.sin_port = htons(SERVERPORT); //htons 将本地端口号转为网络端口号
|
|||
|
serverAddr.sin_addr.s_addr = inet_addr(SERVERADDR); //将本地IP地址转为网络IP地址
|
|||
|
|
|||
|
connect(socketfd,(struct sockaddr *)&serverAddr,sizeof(struct sockaddr_in));
|
|||
|
|
|||
|
//4、聊天
|
|||
|
while(1)
|
|||
|
{
|
|||
|
printf("data:");
|
|||
|
char buf[1024]={0};
|
|||
|
scanf("%s",buf);
|
|||
|
//发送数据
|
|||
|
send(socketfd, buf, strlen(buf), 0);
|
|||
|
}
|
|||
|
//5、关闭
|
|||
|
close(socketfd);
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|